[new #40] Add temporary view support

The previous `View` implementation did not cover temporary views, and
was not extensible enough to allow that functionality to be added
externally.

This implementation extends `View` in a similar way to `BuiltInView`. A
`TemporaryView` can be instantiated with a `ViewDoc` via the `Database`
interface, with all underlying HTTP requests performed as POSTs.