[fwaas] Can now create disabled firewall rules

Previously, the --disabled flag was ignored when creating
firewall rules. This patch fixes that problem, closes the bug
and adds a test. I changed update_dict so that values are sent
on to the API call if they are not None (So False values are
sent as well).

Before this patch, when creating a resource, values were
inserted into the API call only if their value was not None
or False. This worked fine for values whose default value
was False. 'enabled', however, has a default value of True.
That means that sending enable=False wouldn't work.

After the change to update_dict the issue, however, was that
'shared' and 'audited' were then always sent (Even if their
default was False) but the unit tests weren't expecting a False
value since it wasn't explicitly stated. Instead of changing
the unit tests, the solution is to only send the value in the
first place if it is not the default value, using argparse's
default mechanism. If it is the default, then it is written as
None and so is not sent, and not checked by the unit tests either.

Closes-Bug: 1250028
Change-Id: I142089ffd612fb52a326e8951a385920af852a2c
Handle IpAddressInUse with client exception

Nova is not able to reliably distinguish between port OverQuota 409
errors and IpAddressInUse 409 errors when setting up networks for
instances. The client needs to provide a more granular exception so
nova can translate the error to it's own set of exceptions.

Also adds a test case for the exception_handler_v20 utility method which
was lacking explicit test coverage before this change.

Partial-Bug: #1247844

Change-Id: I71589097ae660c3385b3f4ff93ffae99ac7042b9
Merge "[fwaas] Can now create disabled firewall rules"
Merge "Handle IpAddressInUse with client exception"