Improvements for declarative nixos containers

* Use unique service units for each container rather than using
templates (`containers@xxx`) to work around reloading issues.

* Fix triggering of switching to new container configuration when
the container's config has changed.

* Add new options: `macvlanInterface`, `macvlanAddress` and
`macvlanPrefixLength` to enable a macvlan interface within the
container (eth1).

* Do not force a veth pair to be created when `privateNetwork` is
true (Sometimes you just want to isolate the container).

* veth pairs are now created only when `localAddress` or `hostAddress`
are set.

* Add a `wantedBy` option so that you can control when the container
unit should be started (defaults to `multi-user.target`).