lxd-agent/network: Updates NIC config parsing to use map of deviceConfig.NICConfig
lxd-agent/network: Updates NIC config parsing to use map of deviceConfig.NICConfig

Avoids the need for a temporary struct type and aids in seeing where NICConfig is used across the code base.

Also:

 - Uses consistent log15 import used in rest of LXD.
 - Improves contextual logging to always include error and additional device/interface name.
 - Don't rely on the file name of the NIC config for the NIC name to apply, instead rely on NICName from NICConfig (avoids any escaping issues).
 - Makes renaming the interface name optional (can just apply the MTU).
 - Preallocates nicData to be the size of the number of dir entries found (avoids repeated allocations).
 - Doesn't take interface down and then back up again if nothing needs to change.

Signed-off-by: Thomas Parrott <6b778ce645fb0e3dde76d79eccad490955b1ae74@canonical.com>

stgraber/lxd,lxc/lxd,stgraber/lxd,hallyn/lxd,lxc/lxd,lxc/lxd,hallyn/lxd,stgraber/lxd,lxc/lxd,stgraber/lxd,lxc/lxd,hallyn/lxd,stgraber/lxd,lxc/lxd,hallyn/lxd,stgraber/lxd,stgraber/lxd,hallyn/lxd,hallyn/lxd,lxc/lxd