Replace 'typedef' with 'using'

Updating the framework to not have typedef used anywhere and instead have using be used in place would increase the readability of the framework. And it would also go along with the recommendations by the people that write the STD lib to stop using typedef Foo T; and start using using T = Foo;