App network updates via `config` data structure (draft 2)

Created a way to specify app network configurations and update them on the fly.

This is mostly meant to support Neutron: new app networks can be defined and snabbswitch can load them smoothly while running.

I completely rewrote `app.lua` made some incompatible changes. I updated all apps and app networks in the repository so that `make test` works.

Feedback welcome! This is still a draft and in particular I haven't debugged/tested switching configurations i.e. calling `app.configure()` multiple times.