UniterAPI split into V0 and V1, improved tests, fixed tags types
Merge pull request #857 from dimitern/api-uniter-machine-ports

UniterAPI split into V0 and V1, improved tests, fixed tags types

The Uniter API facade is now versioned:
 - All existing methods, except GetOwnerTag are part of the
   UniterBaseAPI, and are common for both V0 and V1. 
 - UniterAPIV0 has the deprecated GetOwnerTag, which
   is replaced by the improved ServiceOwner in V1.
 - UniterAPIV1 has the following new methods: ServiceOwner,
   AllMachinePorts and AssignedMachine.
 - Tests in both the server-side and client-side uniter API
   packages are improved, code is shared where possible.
 - All client-side tags are now concrete tag kinds, rather than
   strings or generic names.Tag.
 - Fixed http://pad.lv/1270795 as a side-effect.

These changes will be used in a follow-up that will make
the open-port and close-port hook tools sandboxed until
a hook is committed, while also ensuring each open-port
or close-port invocation also checks for conflicts.