This patch implements P0634r3 that removes the need for 'typename' in certain contexts.
For example,
template <typename T> using foo = T::type; // ok
This is also allowed in previous language versions as an extension, because I think it's pretty useful. :)
Please make the start of this diagnostic match the non-extension case:
"missing 'typename' prior to dependent type name %0; implicit 'typename' is a C++2a extension"