Solidity parser - not polished yet, but usable

First shot at the solidity parser. It generates an AST and infers and checks the types for each expression node.

Mappings and structs are parsed, but not yet integrated into the type system.
One fewer indent levels here - '{'s belong at same level at label in switches.