JCLOUDS-607: ComputeService.createNodesInGroup throws NPE on FloatingIPA...

Addresses possible returned null value from 'FloatingIPApi.create()'. If upon check we find null then throw InsufficientResourcesException. This in turn will make a second check at IP allocation by iterating through 'FloatingIPApi.list()' and grabbing an available IP. If this subsequent call fails then re-throw InsufficientResourcesException.
Looking at the overall code, we should be able to have the null check in one place only
```
      FloatingIP ip = null;
      try {
    	 logger.debug(">> allocating or reassigning floating ip for node(%s)", node.getId());         
         ip = floatingIpApi.create();
      } catch (InsufficientResourcesException e) {
         ...
         ip = Iterables.getLast(unassignedIps);
      }
      if (ip == null) {
         throw new InsufficientResourcesException(String.format("Failed to allocate a FloatingIP for node %s", node.getId()), e);
      }
      logger.debug(">> adding floatingIp(%s) to node(%s)", ip.getIp(), node.getId());
```
A question on the exception: does it get caught and turned into a RunNodesException higher up? This is the only exception the [interface method](https://github.com/jclouds/jclouds/blob/master/compute/src/main/java/org/jclouds/compute/ComputeService.java#L160) is declared as throwing, so if this is **not** caught and converted we probably should be throwing an RNE here.

@nacx: Any insight on that?