* Add 'plugins' field to project and add rlua
* Scaffold out new SnapshotContext type (again) with plugin state
* Almost functional snapshot system with rlua proof-of-concept
* Gate plugin config on 'plugins-enabled' feature, tell Travis to test all features
* Guard remaining plugin setup code behind feature
* Bump minimum version to 1.33, should've caught this before
* Whoops, latest Rust is 1.32, not 1.33
* Do the nested partition thing
* Tidy up touched code
* Add nested partition test project, not fully functional
* Clean up variable names, move path_metadata mutation strictly into snapshot_reconciler
* Remove path_metadata, snapshotting is now pure
* Factor out snapshot metadata storage to fix a missing case
* Pull instance_name out of per_path_metadata, closer to what we need
* Refactor to make metadata make more sense, part one
* All appears to be well
* Cull 'metadata_per_path' in favor of 'instances_per_path'
* Remove SnapshotContext
* InstanceMetadata -> PublicInstanceMetadata in web module
* Build in snapshot testing system for testing... snapshots?
* Remove pretty_assertions to see if it fixes a snapshot comparison bug
* Reintroduce pretty assertions, it's not the cause of inequality
* Fix snapshot tests with custom relative path serializer
* Begin the metadata merge trek
* Tidy up path metadata, entry API, begin implementing
* Flesh out use of PathMap Entry API
* Metadata per instance is a go
* Tidy up naming for metadata per instance
* SnapshotMetadata -> SnapshotContext