add support for neutron/nova notifications

This adds options to configure the Neutron -> Nova notifications of port
status and data changes.  Requires a recent puppet-neutron module with
neutron::server::notifications manifest (e.g.,
https://review.openstack.org/#/c/88410/)

Change-Id: I26684a8fe5df79db6b68a5bd733619517376660c
Closes-bug: 1306337
Introduce support for mocking command output

This change rewrites FakePopen to permit registering commands and
synthetic output such that client code can call subprocess.Popen() and
receive required output without actually executing commands.

With this change, it is possible to mock most of the output
require during a packstack run.

Change-Id: If81f71cfe89a61e25fb62c97ed5b3759039a0bfb