Type parsing

All types are parsed from source. This doesn't include arrays which
currently have zero support across Crystal Clear.