Create a basic functional linux make-based build for mono

`nmake` and `make` makefiles, while similar, do not play well together. Additionally, the `mcs` c# compiler seems to care about build order more; I had to take that small internal class `ObsoleteAttributeMessages` and lift it out into its own file so I could move it before the things that depended on it in the build order.

As an aside: With no test suite, I can't be 100% sure that the library functions perfectly under mono - I can assert that it compiles, though.