Solidity scanner and some unit tests.

The scanner is a modified version of the v8 javascript scanner.
Solidity parser, can not parse much yet.
Parse everything up to function bodies and report parser errors with location.
Corrected indentation.
Initial implementation of Solidity parser finished, not yet tested much.
AST printer and command line tool, some fixes.
Name resolution.
Added copyright blocks.
Merge remote-tracking branch 'ethereum/develop' into solidity
Type system, not yet complete.
Added meaningful exception types.
Some fixes for the type system, should be quite usable now.
Remove unused parameters.
Corrected coding style.
Coding style and cleanup
Keyword cleanup
Coding style cleanup: const and vecptr.
Pointer type cleanup: Use ASTPointer only for AST nodes and shared_ptr for type
pointer.
Access modifier cleanup.
Cleanup of copyright headers.