Add flow type support

Most of this is a 1:1 mapping from esprima-fb. There are only two things that I haven't implemented due to not knowing the best way, this is types within arrow function parameters and the postfix for paranthesized primary types.

Apologies if the code is a bit janky, let me know if you want me to make any revisions.