Added mixin call, cleaned up the API

- The underscore.js concept of mixing is the same as our concept of
utilities, so make it so by introducing a mixin call
- `addExtensions` is now an alias for `addExtension` which now accepts
extensions
- removed some semicolons that snuck in
Updated base files. Linting.