In the future we might want to add new features to the
Entry. I am currently thinking about source maps, where
a new field will need to be added to the Entry. Therefore,
use Data.Default to make sure we don't need to bump the
major version for these features.
This commit adds just the subsite itself. The subsite
works by running a list of generaters at compile time.
The entries produced by the generators are converted into
wai-app-static.WaiAppStatic.Storage.Embedded entries. Also,
addStaticContent is supported via an IORef. When a widget
produces static content (css, javascript), it is stuck into
the IORef inside the embedded static subsite. The embedded
static subsite will then serve it from the IORef, properly
using a 304 response if the client already has the content.