Remove generating javascripts and stylesheets from theme.yml file.

theme.yml is not an intuitive workflow. Assets are no longer managed by the database, they will simply be references as normal from their links.
javascripts and stylesheets resources now handle their own previewing.

Previously themes handled the asset previewing which is why they were skipped over.
urls should cascade from longest to shortest so the most specific routes get handled first.
Implement 'stylesheets.load' block helper as the new interface to load stylesheets.
Implement 'javascripts.load' block helper as the new interface to load javascripts.
theme no longer compiles javascripts or stylesheets

Implement asset compiler to compile stylesheets and javascripts.
Omit layouts from theme compilation.
Remove unused layouts stylesheets update calls.
Always remove leading slash as an effect of url_to_path.
Load persisted(cached) resource objects.
Store and cache all calls to stylesheets.

Exposing a writer to the cache allows us to mutate the cache in the event we need to rewrite the urls.

This of course comes in handy when we do post-processing on assets and update the urls to include a digest hash.
Store and cache all calls to javascripts.

See previous commit for reasoning.
Compile assets first.

This is hacky because we are hard-coding order priority when theoretically resources can be made to plug into the system without any hard-coded system code =/
Add plugin to support sprockets integration.

Sprockets is a rack-based asset-packaging system. Supports live preview and bundling, minification on compile.
Update widgets to work as a normal resource would.

Widget files are generated into the database just like any other resource. Lean on the view class to process and render the correct widget.

Also renders the widget within the global master_view giving full access to master_view environment.
Update widget layouts to new API.

config is defined inline as YAML meta-data and layouts have access to global master_view context. Javascript support is broken atm.
Automatically set @collection in collection views.
Add base watcher with automatic @collection inclusion.