Implemented prefer-ipv6 environment setting
Merge pull request #293 from dimitern/prefer-ipv6-environ-config

Implemented prefer-ipv6 environment setting

This is the first of a series of PRs to implement
a "prefer-ipv6" flag across the codebase. As a first
step the following changes were made:
 * Added prefer-ipv6 Boolean flag to the environ config.
   It is optional and defaults to false, and is immutable
   once set.
 * Rather than using a global variable network.PreferIPv6,
   now a new function was implemented: InitializeFromConfig(),
   which takes an interface with PreferIPv6() bool to set
   the (now internal) preferIPv6 flag. This needs to be called
   at start up in several places (bootstrap, MA, UA, CLI), but
   that will happen in follow-ups.
 * Changed the dummy provider a bit to accommodate the changes
   done to the network and config packages.

Next in line will be implementing a PreferIPv6 field in the
agent config, so if it's true we can call InitializeFromConfig
before trying to connect to state or the API to ensure the
user's request to prefer IPv6 addresses / endpoints is honored.
WIP Actions Hook running on Unit; tests incomplete; review welcome!
Tweaked Hook Info type to only include Action id, not params or name
WIP building HookRunner
WIP RunHook HookContext/HookRunner refactor
WIP RunHook HookContext/HookRunner refactor 2: adding runner methods inside HookContext
WIP RunHook HookContext/HookRunner refactor 3: Mostly finished just need to add ActionTag bit.  Validate will be next commit
WIP RunHook HookContext/HookRunner refactor 4: Get tests running
WIP RunHook HookContext/HookRunner refactor 5: Removed ActionName and ActionParams from worker/uniter/hook.Info
WIP RunHook HookContext/HookRunner refactor 6: RunHook test refactor