Fix how features are defined (again).

Appending to the existing property is more verbose but easier to read
than one long string.
Get builds working on Mono.

Also include a bunch of changes to make the build system easier to
follow.