Corrects ERR trap

function fw_exists was returning a non-zero code, which was always
triggering the ERR trap. This commit fixes that issue for the "go"
dependency - it still needs to be fixed for others.

This also updates the ERR trap to have access to the entire
bash function stack, which would be very useful for debugging
Apply ERR fix to all dependency installer files

Minor bugs fixed:
- Ruby was triggering ERR trap
- Erlang was untarring nonexistent file
- Composer was being installed into nonexistent directory
- Mono was incorrectly trying to move it's install location
- Yesod now depends on haskell
Ensure consistent ENV
Enable framework-specific install directories and environment

This commit is my proof-of concept, only the 'go' test works right now.
You can look at go/ to see the changes required on a per-framework
basis - essentially I've modified go/setup.py to move the declaration
of the environment into go/bash_profile.sh

Each framework now gets a personal <framework>/installs directory, and
can declare any needed environment variables in
<framework>/bash_profile.sh, such as modifications to the PATH.

The FwBm code now provides an FWROOT environment variable to
*all* shell scripts (instead of ~/Frameworks being assumed).
Also, an IROOT environment variable is provided to any framework-specific
files (e.g. install.sh and bash_profile.sh) for the location of the install directory
for that framework. See go/bash_profile.sh to see me using both IROOT and
FWROOT.

By using IROOT, the strategy for installation is still controlled by python code and
the frameworks just reference IROOT and FWROOT in their scripts. These
variables are a nice step towards solving #448

The new function replace_environ in setup_util.py goes a long way towards
addressing #899 - as you can see I've removed all the changes to the ~/.bash_profile
from prerequisites.sh (and this commit serves as proof that everything still works) and
most of the changes from config/benchmark_profile
Generalize framework-specific install directories

- adds an '--install-strategy' option
- framework_test properly sets the install location before calling setup.py
- removes '--install-software' option (checks for '--install' instead)

Still proof-of-concept, only 'go' works!