rename StringType VERSION to VERSIONNUMBER

aptitude has a define for VERSION, so to not generate a FTBFS we just
rename our enum element to a slightly less generic name.

Git-Dch: Ignore
implement MarkAndSweep in cc instead of header

Having it in the header exposes some implementation details, namely
private methods and will cause problems for us if we ever want to change
the actions.

Git-Dch: Ignore