2.0 Decouple CSS & JS

Decoupled the CSS & JS layers so that CSS class names (excluding states) are no longer hardcoded in the JS.

Related to https://github.com/titon/toolkit/issues/28