Documentation, increasing performance, some Contracts

* All classes except `Mono.Options.*` are documented.
* The `HypenateCamelCase` method is rewritten to increase performance.
* Some contracts are added to the code (mostly useless)
* `ExtraAttribute` is removed, since it has, as far as I see, no use
* Added `AssemblyInfo`
* `.gitignore` ignores temporary files