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.
'current_command' has to be stored in xconf
rebar_deps: fix Dialyzer warning
rebar_deps: 'depowner' has to be stored in xconf
rebar_deps: fix overly long lines
Fix issues introduced in #137 (4dfdd72)

* fix Dialyzer warning
* fix formatting
Fix update-deps with certain forms of the {tag, ...} type

Sometimes tags like 1.1-3-g3af5478 or d20b53f0 are encountered. The
first is the output of 'git describe', and the second is just a regular
git SHA. git fetch --tags will not pull these down, so do a full git
fetch instead.
Don't over-aggressively clean the code path in the presence of lib_dir directives

Rebar, when it encounters a lib_dir directive, caches the current code
path, adds the libdir(s) and returns the cached copy of the path. When
rebar has finished processing that directory, it restores the cached
path. This is problematic in the below scenario:

        /(lib_dir)->G
  A -> B -> C -> D -> E
   \-> F -> D -> E

When rebar is finished processing B, it restores the code path to what
it was before it processed B, removing C, D, E and G from the code path.
This means when it comes to process F, neither D or E are in the code
path, so any header includes, rebar plugins or parse transforms will not
be in the code path. Without the lib_dir directive, rebar does no code
path cleanups, so everything works fine.

This change makes rebar only remove the explicit lib_dir code paths it
added and adds an inttest that replicates the above scenario.
Don't badmatch if a path we think we added isn't in the code path
Init RUNNER_SCRIPT var in simplenode.runner

RUNNER_SCRIPT variable is not initialized in simplenode.runner and it's
referenced when calling sudo.
Merge pull request #166 from mdaguete/no_runner_script_var

Init RUNNER_SCRIPT var in simplenode.runner
Roll rebar version 2.1.0
Merge pull request #154 from Vagabond/adt-update-tags

Fix update-deps with certain forms of the {tag, ...} type
Merge pull request #157 from Vagabond/adt-lib-dir

Don't over-aggressively clean the code path in the presence of lib_dir directives
Merge pull request #155 from tuncer/fixes

Fixes for #137 and #142
Add missing dep examples and fix existing ones
deps: remove undocumented fossil syntax

As discussed with Martin Schut, remove support for
{app_name, "vsn", {fossil, "url", latest}.