Don't restart the metadata proxy on config; read config changes from disk.
Only open the shelve if there's at least one subnet with custom host_routes.
Restart the metadata proxy if networks have been added/removed.
Remove an unnecessary optimization.

Despite its expense, we can't really avoid doing this operation every time;
even if no `host_routes` are provided in the current config, we *must* read the
previous value to determine if any cleanup needs to occur.
Fix flake8 errors.
Refactor the metadata proxy a bit.
Use dogpile.cache instead of Flask-Shelve.
More metadata service cleanup.
Add tests for the metadata proxy.
Touch /fastboot inside the image to skip fsck on first boot

Change-Id: I6a5c0595409fee9b084ae03bf69d1bffb5e9e3b9
Merge pull request #54 from dhellmann/bypass-fsck

Touch /fastboot inside the image to skip fsck on first boot
Merge pull request #55 from jordant/master

Do not start sendmail or sndiod
Merge pull request #56 from jordant/master

Remove duplicated rc.conf.local setup
Merge pull request #52 from ryanpetrello/metadata-proxy-optimization

Metadata proxy and config push optimization
Store the akanda route metadata in /etc instead of /tmp
Merge pull request #57 from ryanpetrello/master

Store the akanda route metadata in /etc instead of /tmp
Mock dogpile cache in API tests

Change-Id: I5e168e5aeb9b3d189c85dda36ee84a1183623af7
Support empty gateway_ip field on subnets

If the user doesn't want to route out of a subnet, let them leave the
gateway IP blank.

Change-Id: Ibc53b47cf788bbb4f4e48297a0c1c692f16b81d8
Fix flake8

Change-Id: Ie5a69e403a8bac0c27d796cbf97875e3df10ba19
Merge pull request #58 from dhellmann/handle-missing-gateway

Support empty gateway_ip field on subnets