Introduce net_fence/subnets package

[respect-network-flag-#75464982]

Signed-off-by: Julian Friedman <julz.friedman@uk.ibm.com>
Added flags parsing for net_fence

First step to modularising container fences

[respect-network-flag-#75464982]

Signed-off-by: Julian Friedman <julz.friedman@uk.ibm.com>
Introduces new static allocation of container/30 subnets.

* Commence use of net_fence in new structure
* Adapt old to use new net_fence
* Added doc to pool.go

Previously NETWORK parameter was ignored. All containers allocated dynamically
in /30 subnets from the DefaultNetworkPool.
Now the NETWORK parameter can specify a /30 subnet *not* in the DefaultNetworkPool
and the container is explicitly allocated with this subnet. If not specified
it is dynamically allocated as before.

[respect-network-flag-#75464982]:

Signed-off-by: Julian Friedman <julz.friedman@uk.ibm.com>
Merge branch 'respect-network-flag-#75464982'

* respect-network-flag-#75464982:
  Introduces new static allocation of container/30 subnets.
  Introduce net_fence/subnets package

Signed-off-by: Julian Friedman <julz.friedman@uk.ibm.com>
Tidy up subnets doc, and add concurrency tests.

Added locks to avoid clashes on AllocateStatically and Release methods.

[#75464982]

Signed-off-by: Julian Friedman <julz.friedman@uk.ibm.com>
Enable MTU size to be configured

Add a mtu flag on the main garden-linux executable and pass its value into the
Linux backend and thence to each container's Start method. Set the MTU size of
both ends of the container's virtual ethernet pair to the specified value.

Syntax:

-mtu=<uint32>

Default value: 1500

In addition to unit tests, add an integration test which checks the MTU size
is configured correctly on both ends of a container's virtual ethernet pair.

[#80221576]
Move mtu flag to net_fence

[#80221576]