Fix ip selection

This branch fixes a bug whereby the `$ip` parameter to ufw::allow is ignored unless the ipaddress_eth0 fact is defined. That is, if I specify:

```puppet
ufw::allow {'foo':
  ip => '127.0.0.1',
}
```

then it will run `ufw allow proto tcp from any to any` rather than `ufw allow proto tcp from any to 127.0.0.1` if the ipaddress_eth0 fact doesn't exist.

In order to ensure it didn't break anything else, I also added rspec-puppet tests for ufw::allow.