Parsing Type Alias

This adds the ability to parse type alias declarations. They look like

    type bar = number;
    type Foo<T> = Bar<T>;
So type aliases can only sit at the top-level? I'm not necessarily opposed to this, just confirming this was intentional. I guess this means type aliases are fundamentally module-scoped then, too? Can they be exported?