Add run_service() to start services without screen

* USE_SCREEN defaults to True, set it to False to exec the services
  directly from bash.  SCREEN_DEV is still supported until the CI
  scripts get updated.
* The extra logging file descriptors are properly closed in the child process
* The screen_rc() call is still present; this means that stack-screenrc will
  have a complete record of what was started and rejoin-stack.sh may be able
  to re-create the setup under screen.
* The python interpreter was unwilling to write to the log files without
  unbufering stdout by using PYTHONUNBUFFERED.  This feels hackish and should
  be investigated further.

Change-Id: I012ed049f2c8b185a2e6929d73edc29e167bc21f
Allow DATABASE_TYPE to be specified in localrc

The use of DATABASE_TYPE without forcing it into ENABLED_SERVICES
seems to be the only way to set up a multi-host devstack installation.

If there are other ways to set up a multi-host installation, then this
change may not be needed.

Also, we should look at whether DATABASE_TYPE should be deprecated or
if we can safely just deprecate use_database

Change-Id: I4c6e8ee31f298004338ca46bfc330a3e3af288aa
Fixes: bug 1136028
Merge branch 'run-service' into dt-test