`base_url` config setting and handling

This adds a new config setting: `base_url`.  Use this to specify
that assets are hosted at a relative url root.  The server middleware
will look for this base url in the request path info and lookup
any assets relative to it.

Note: this also includes updating to the latest version of assert
and adding in a factory class to help with the testing.  This is
to keep up with our latest testing conventions.

@jcredding ready for review.