Solc command line arguments

Solc now accepts multiple command line arguments.

- Most of the options concern the output of solc.
- Output to both a file and the standard output is possible.
- Unknown arguments are ignored
- Illegal values to arguments produce a legible error explaining to the user what he did wrong.
The main function got quite long, can you split it?