Add is_rhel6

Add is_rhel6 function to test for RHEL6 as the first step for getting
support.  RHEL6 is considered to be a special version of Fedora, so
is_fedora still matches on RHEL6.  This avoids a lot of code churn,
but does mean you have to be slightly careful with ordering of checks
to get RHEL6 specific behaviour.

Change-Id: Ida19130ce9499d4d1fd2360fadc6b870b24bbc95
Allow RHEL6

Allow RHEL6 as a valid target for installation

Change-Id: Id1da6955614cf72962c9e2147b1c06b9bf0c210e
Skip pip mirrors for RHEL

The RHEL6 version of pip doesn't have support for mirrors, so skip
asking for them.

Change-Id: If97501fd2e8d32c8ad5c27605cf2db5a47071336
Rename Qpid package for RHEL6

Qpid package name is different in RHEL6 to Fedora

Change-Id: Ibf74e722032eadbabf6613d682654405969125ec
Add post-prereq phase

This generic extra phase is handy for fixing up things like python
modules after pip is installed or other distro specific requirements.

For RHEL6, we add some post-prereq actions; a workaround for a hgtools
issue and install pycrypto and lxml as pip dependencies, overridding
the installed versions, and fix-up a dependency issue with prettytable

Change-Id: I4a68b830cd98c6f93191dac1edd7de2a0381feaa
Create separate RPM lists for RHEL6

Split out the RHEL6 rpms into a separate list.  Various changes here
to the base Fedora versions to not specify RHEL6 packages that are too
old or conflict

Change-Id: I89aa507ae15df49383a32a1c4b4767acbf30bdf5
Use sudo to remove packages

yum and others need root to remove packages

Change-Id: I556505636c41296f9188c248dff13b85616c667c
Allow sourcing a script before running install for a package

On some distros, it is handy to be able to do something specific
before installing one of the devstack packages.  This allows a script
to be sourced before 'pip install' of the package and its
dependencies.

Change-Id: I6a9d4a7b4e7bf306b755997a0bad91813dc5d48b
Ensure polkit config is written for RHEL6 as well

Separate F18 polkit config and ensure it's written out for RHEL6, or
you get authentication errors with libvirt

Change-Id: I50c8a639337d171d94aa8a5a00b9f458efddbb6e
Grab upstream nodejs for RHEL6

RHEL6 has no nodejs in main packages or in EPEL.  The easiest way is
to just install the upstream binary version which works fine for the
very minimal usage by lesscss.

Change-Id: Ieea7aa21705e193a635d17e3963cc673cbd41c79
Basic check for homedir permissions

Several guides suggest using data directories under your homedir,
rather than the default /opt area.  This is fine, but on RHEL6 and
similar distros homedirs are very restrictive 0700 permissions which
doesn't allow things like httpd to pass through to serve up files.

Even though stack.sh is taking over the host, changing permissions
automatically is not a nice idea.  So we just warn when it looks like
this is happening.

Change-Id: I9cd70e7fe90638a2a5c3b8fd94756afacac7c7be