Heat/Horizon/Tempest: don't hard code venv dir

Updates the heat/horizon/tempest elements so that we use a new
{SERVICE}_VENV_DIR variable (set via an environment.d hook)
to configure the virtualenv directory.

For the Horizon element the HTTP config file was moved into
the install.d directory so that we can perform an inline
in element replacement on the HORIZON_VENV_DIR. This file was already
static so this should have no effect on its use today.

For Horizon's local_settings.py we have the tempate render itself
to /etc/horizon/local_settings.py and then copy it via
os-refresh-configs post-configure to the final $HORIZON_VENV_DIR.

For the Tempest element we soft link testr into the $PATH so
as to avoid a hard coded path to the venv dir in the run-tempest
bin file.

This is cleaner in that we aren't hard coding /opt/stack/venv
everywhere and also supports both isolated and shared
venvs (which some people would like to use).

Change-Id: I6cf282dc8d8fd806d8dd0bdb21d5afb93243bd3f
Merge "Heat/Horizon/Tempest: don't hard code venv dir"