Set rules on the Firewall object

This may not be desired so Drew should review. It is necessary
for rule addition to work. Otherwise authorize() doesn't see the
existing rules on the firewall.
Don't specify ports for ICMP firewall rules
Fix firewall rule ID generation to be consistent

A different ID was returned in getRules()
Additional null checks for allowed ports

ICMP rules have no allowed ports, by definition. The GCE API returns
a null value instead of an empty list in these cases.
Merge pull request #52 from labisso/firewall-fixes-develop

Firewall fixes -  develop