Prep for upgrading to guava 18

- remove deprecated uses of guava 17 code, so will compile against 18.
- useful for if testing out jclouds 2.0.0-SNAPSHOT locally.
Adds HasNetworkAddresses interface

- implemented by MachineLocation
- useful for advanced networking, when SubnetTier wants to
  choose private or public address, depending on context.
JcloudsLocation: avoid NPE if node.getImageId null
JcloudsLocation: white space tidy
jclouds machine: if !waitForSshable don’t ssh for machine-details
Adds jclouds.labs:vcloud-director dependency
Entities must initialise their service state enrichers

And fix BindDnsServerLiveTest
Catalog: Set id of items added from classpath to typename

Keeps backwards compatability
jsgui: Replace _.template with custom function that strips comments
This closes #191
This closes #192
This closes #196