[System.ServiceProcess.ServiceBase]: Implement Stop() and ExitCode

Stop() wasn't calling OnStop, so a unit test was added, its basic
functionality was implemented, and MonoTODO is removed.

ExitCode now also stops throwing NIE. A unit test is added to confirm
that ServiceBase class doesn't modify it across runs. This property will
be useful for my next commit in mono-service.cs.
[mono-service] Report to syslog if ExitCode ended up != 0 after Stop()

In the previous commit, ExitCode was implemented, so we can query it now.
This is useful because many Windows Services nowadays use this variable
to notify about a problem at stop time.
[System.ServiceProcess.ServiceController] Remove NET_2_0 ifdefs

Also dropping ONLY_1_1.
Merge pull request #620 from knocte/monoservice_playground

Little improvements to mono-service land.