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).
Fix typo in neotoma help message
mib_to_hrl compilation verbosity via 'mib_opts'

Previously, the configuration setting 'mib_opts' in rebar.config
would affect the call to snmpc:compile/2, so that (for example)
verbosity could be controlled.  However, the subsequent call to
snmpc:mib_to_hrl/1 did not include any of these options, so it
did not appear to be possible to control the verbosity of the
process of converting a MIB to a .hrl file.  To make matters
worse, the default was to dump a full trace -- including debug
output and various logging -- so the act of compiling a large
number of MIBs could result in a huge amount of "noisy" output
that hid any signal (meaningful warnings, errors, etc.).

This commit addresses that issue by replacing the call to
snmpc:mib_to_hrl/1 with a call to snmpc:mib_to_hrl/3 instead,
which includes an "options" argument that, at present, is only
capable of setting verbosity.  The verbosity setting is taken
from the 'mib_opts' setting in rebar_config, if present, and
the approriate kind of argument is passed to snmpc:mib_to_hrl/3.

It should be noted that snmpc:mib_to_hrl/3 is not listed in
Erlang's documentation, but does appear in the list of "API"
exports at the top of snmpc.erl in R15B01 (and remains that way
in R16B01), so this appears to be more of a documentation oversight
than the use of a deep, dark function call that was not intended
to be public.  snmpc:mib_to_hrl/3 accepts an #options{} record
(defined in lib/srdlib/include/erl_compile.hrl within Erlang's
source distribution), though most of the fields in that record
are ignored by snmpc:mib_to_hrl/3; only verbosity can be controlled
this way.
let vm.args and sys.config as optional
Support conditional template instructions
Make update-deps traverse deps breadth-first, top-down

This ensures that deps of deps are updated AFTER the dep listing them
is, so that a complicated project with many layers of deps will be
updated correctly. Any new deps encountered along the way are also
cloned, and THEIR deps are also evaluated.

Also added was conflict detection, if a dep has differing versions or
source information, inherited from different places, that will be logged
at the end of update-deps, along with the origin of each conflicting
dep.
Change rebar_ct:check_log/3 to use double quotes

The call to the grep program in rebar_ct:check_log/3 used single
quotation marks around the strings grep should search for. This works
well in most cases but fails on Windows 7 using GNU grep 2.5.4 as
installed by the Chocolatey package GnuWin 0.6.3.1 with the follow
message:

ERROR: cmd /q /c grep -e 'TEST COMPLETE' -e '{error,make_failed}'
ct/raw.log
failed with error: 2 and output:
grep: COMPLETE': No such file or directory

This commit changes the single quotation marks to double quotation
marks. I've tested this using GNU grep 2.5.3 on a Debian Linux machine
and it works well.
Merge pull request #143 from loxybjorn/grep_using_double_quotation_marks

Change rebar_ct:check_log/3 to use double quotes
Merge pull request #138 from evax/conditionalTemplateInstructions

Support conditional template instructions
Merge pull request #137 from bosqueviejo/master

let vm.args and sys.config as optional
Merge pull request #132 from alexthornton1/mib_to_hrl_verbosity

mib_to_hrl compilation verbosity via 'mib_opts'
Merge pull request #125 from lucafavatella/neotoma-doc-typo

Fix typo in neotoma help message
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.
Fix eunit regression introduced in 2716d83a18

Use alternative way to detect net_kernel:stop/0 has succeeded as
suggested by Ulf Wiger.
Extract contributing guide into CONTRIBUTING.md

While at it, refactor the guide for clarity. Some of the new text was
taken from erlware/relx/CONTRIBUTING.md and modified as needed.
Always return the errors and warnings from erlydtl

This allows us to use `rebar_base_compiler:ok_tuple/3` and
`rebar_base_compiler:error_tuple/5` when returning from
`rebar_erlydtl_compiler`.
Merge pull request #109 from tuncer/contributing

Extract contributing guide into CONTRIBUTING.md
Merge pull request #122 from tuncer/net_kernel

Fix eunit regression introduced in 2716d83a18