Completely revamped the "Defaults" stuff, it's much more flexible and powerful now.

In the process managed to restore compatibilty with versions of GHC from 6.10. This had been broken because I hadn't bothered to check for the last few commits.