Avoid passing more than one instance of ERL_LIBS to child processes

This commit fixes issue #98 by removing the ERL_LIBS and REBAR_DEPS_DIR
from the list of environment variables exported by the rebar_port_compiler
plugin.
Incorrect REMSH args when sname is used

When a node is configured with -sname in app.config or sys.config the
REMSH_NAME_ARG and REMSH_REMSH_ARG arguments are incorrect due the
assumption that the node name always contains '@'.

To fix the bug, the script tries to find '@' and then compose the
arguments acording to node name type. If in long name mode the
script can't compose a correct node name exits with warning.
Make REMSH node run in hidden mode

To avoid problems with REMSH node being visible from another nodes
starts it in hidden mode (erl -hidden).
Allow specification of module dependencies for appups

The order in which modules, within an application, are loaded can be
important. This patch adds allows the specification of module
dependencies such that generate .appup/.relup scripts will load a
module's dependent modules before itself.

To use:

in rebar.config, add a module_deps

{module_deps, [{ModuleName, [DependentModuleName, ...]}]}.

ModuleName is the name of any module, followed by a list of module
names that it depends on.
Support switch template instructions
A switch variable can have multiple values
Add test for regression caused by 252b31f (#90)
rebar_core: minor comment fix
Fix regression caused by 252b31f (#90)
inttest/depplugins: update docs
Speed up the compilation process

* Do not parse source files twice while checking for relationship.
* Keep files relationships in a graph.
* The option 'keep_build_info' is introduced. When set to 'true'
  the graph will be kept in ebin/.rebar.build.info and will be
  used by further compiler calls. The default is 'false'.
erlc: add support for detecting core transforms
erlc: clean-up, enhance, and regression fix fd17693

* update files
* fix Dialyzer warning
* unconditionally enable info fil
* clean-up inconsistencies
* use term_to_binary compression
* use try...catch instead of case...catch...of
* do not write build info file if the graph is unmodified
* store info file as <base_dir>/.rebarinfo
* properly support list of compile directives
* fix regressions:
 - Fix a bug in handling of files to compile first.
 - If a file that is depended upon itself depends on other files, make sure
   those are compiled first. While at it, rename variables for correctness.
   Reported-by: David Robakowski
 - Make sure that FirstFiles has no dupes and preserves the proper order.
 - headers referenced via -include_lib() were not properly resolved to absolute
   filenames
 - .erl files found in sub dirs of src_dirs were not properly resolved to
   absolute filenames
Merge pull request #129 from tuncer/erlc-speedup-v5

Speed up the compilation process v5
Merge pull request #175 from tuncer/cwd-plugins-regression

CWD plugins regression
erlc: fix comment

test_compile/3 is used by eunit and qc, but the comment was only
referring to 'rebar eunit'.
Fix #220 (Reported-by: Joseph Norton)

When running 'rebar qc' or 'rebar eunit', we were erroneously fetching
erl_opts more than once.
Merge pull request #98 from jcomellas/jc-no-erl-libs-repetition

Repetition of environment variable definitions in child processes (ports)
Merge pull request #234 from tuncer/fix-220

Fix #220 (Reported-by: Joseph Norton)
Merge pull request #115 from mdaguete/simplenode.runner-remsh-fixes

Incorrect REMSH args when sname is used.