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
Fix softlayer: delete custom code; rely on jclouds

- The SoftLayerFastVirtualGuestToNodeMetadata broke softlayer for me:
  when I provisioned a VM, the NodeMetadata returned had a null imageId
  and null OperatingSystem, which caused an NPE in
  JcloudsLocation.createUser.
- Deleting that class to rely on normal jclouds 1.8 fixed the problem
  for me.
This closes #193
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