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.
I think it is but it should have a lot of std::string() constructors, so would also become kind of undreadable. I can go with `#define` and `#undef`