Fixes caching errors, respects more of config.sass

There's some pretty significant architectural changes - as much as possible I changed monkey-patches to subclassing, which should make it easier to maintain over time.