Restructure the cleanslate project to allow for automatic adaptation acr...

...oss platforms

Cleanslate must support system level operation across many platforms. As a result
it is desirable to be able to define various "cleaner" types, then assign them to a
platform, and have the utility expose any compatible cleaners at runtime.

This makes adding new platform specific cleaners much simpler and mitigates any need
to modify the actual cleanslate.py script in order for them to be surfaced. This
architecture also opens the possibility of a plugin system.