Adds to AST API and full_type API.

Gives ASTs an empty() method to tell if they're empty (root is NULL).
Gives full_type a synonymity check to tell if it's synonymous (not overloadable) with another full_type.