Add support for build config functions

Grunt is now configured as we read the config modules.  Those can now
return functions instead of objects; the functions are called with the
`grunt` object so they can use already-processed config.
Tell r.js to include the database backends

Instead of using a `require` call to have them included, we now get the
backend list and use it when configuring the RequireJS optimizer.  This
process is done in a way that `userconfig` changes to the list are taken
into account.
Stop embedding JavaScript and CSS within the HTML

The embedding process required special handling of resource paths and
was also causing parsing errors after `firebase.js` got included.
Update dependencies

Please note that the upstream URL from the `vendor/leaflet` submodule
has changed; you need to run `git submodule sync` in order to apply the
change.
Remove EOT and SVG versions of Glyphicons

According to caniuse.com, the WOFF and TTF versions alone cover all the
supported platforms, while the other two are almost browser-specific.