Firewall fixes - 2014.03

This fixes a few issues surrounding firewalls:

- Adding any new rule replaced entirely what was there before. This is because the Firewall object didn't have rules set on it.  I fixed this by adding a call to ```firewall.setRules()``` in ```getFirewall()```. This seems reasonable as it doesn't incur any additional cloud calls.

- I also found and fixed some issues surrounding ICMP rules, where ports should not not specified or expected for allowed.

- Finally, a different ID was returned from ```authorize()``` than what was later returned for the new rule from ```getRules()```. I fixed this to use the same ID generating method.