Support serial console access

This patch implements a console driver IPMIShellinaboxConsole that
uses ipmitool + shellinabox. The console can be accessed from a web
browser with the url returned from the driver. The console_utils
module is created for the common console functions.

The following new config options under the 'console' group are
introduced: terminal, terminal_cert_dir, terminal_pid_dir,
subprocess_checking_interval and subprocess_timeout.

When invoking the shellinaboxd console process, subprocess.Popen
is used instead of openstack.common.processutils because the latter
hangs for long running daemon process.

Co-Authored-By: Ling Gao <linggao@us.ibm.com>
Co-Authored-By: Matt Wagner <matt.wagner@redhat.com>

blueprint serial-console-access

Change-Id: I89a21e4d6969b91386896d1abc7035f9ba0232d9
Merge "Support serial console access"