cache the embed code when appropriate
use relative asset paths instead of asset specs

Asset specs are cool, because they give us the ability to use paths
which are package-relative without knowing where the package is
installed, but it's not the right solution in our case. By not using
asset specifications here pyramid_webassets is left to figure out
the location of our assets by using the environment configuration in
webassets.

- Makes assets more easily overridable! Add a path to the head of
  webassets.load_paths and override an asset. Voila!
- Makes it possible to leave off the excess static_url routes and
  leave only the webassets URLs. That means that even when serving
  assets "as is" (unfiltered), such as images, the asset prefix is
  used. In production, this will be important since it allows the
  base URI for assets to be absolute (likely on a separate subdomain)
  and be honored everywhere.
- It fixes the cssrewrite filter by ensuring that the base URI for
  the input is considered against the webassets base URI rather than
  the other static view configurations.
set appropriate cache headers for static assets

When webassets is configured to use unique URLs for versioning,
set a "far future" expiration so browsers cache forever. Otherwise,
make sure they don't cache at all because we're in development mode.
add health check
fix last static_url
honor default webassets.url_expires
remove unnecessary settings
move the json app state to /app/state no cache

Not every browser supports "Vary: Accept" so it's not a good idea
to try to serve the HTML of the app on the same path as the JSON
endpoint used for syncing the dynamic application state.
add a 'cssversion' webasset filter

With this change, every single asset is now versioned.
bump pyramid_webassets
defer attribute for webfont load

I believe this is the last external resource blocking page loads.
remove obsolete cleancss filter

This is upstream now.
add discovery plugin
configure store with discovery
more flexible head slot

Using metal:fill-slot in combination with tal:omit-tag makes it easy
to provide a slot to add any number of child elements to a node. In
this case, it's used to make the <head> tag in the base template
extensible by the layout templates.

Also, make the embed deferred on the home site.
add discovery link tag
make api its own package
split oauth, flask store, and delegated store apis
Initial commit: always gives back json
Check content_type in request header and only give back json if it's application/json