CC: Added warning for non-void function with no return.

Also fixed an unfortunate dependence on order of evaluation when creating function statements.
Moved the AST Warning objects to their own header and source.
CC: Allow attributes at the start of address-space-declaration.