Support switch template instructions
A switch variable can have multiple values
Add 'p4' (Perforce) as a dependency type

This calls the 'p4' command-line tool to checkout and sync Perforce
trees. It involves significantly more special code in Rebar than
using 'git p4', but it eliminates the indirection of
Rebar->Git->Python->Perforce
Move include/rebar.hrl to src/rebar.hrl

rebar.hrl is only meant to be used by src/*.
improve behaviour of `rebar shell`

attempt to emulate the behavior of
`erl -pa ebin -pa deps/*/ebin`

fix error messages and formatting issues of `rebar shell` by
shutting down and restarting the user subsystem in a mode more
hospitable to the shell than the simple user started when run
as an escript. emulate `error_logger` behaviour when the shell
is run via `erl`

add documentation of the shell command

limitations:

the erlang interrupt handler is not enabled when running as an
escript and there is no interface to re-enable it via erlang code.
this means `ctrl-c` will immediately exit the running process
unlike when running the shell via `erl`. `ctrl-g` is, however,
unaffected

the user subsystem is killed and restarted but not supervised. if
your code somehow relies on the user subsystem crashing and
restarting `rebar shell` may interfere with it's operation
Error 'Command not found' when sname is used
When a node is configured with -sname the REMSH_NAME_PART argument should be defined with using command 'hostname' but error occurs due extra space
Merge pull request #280 from talentdeficit/bettershell

improve output when using `rebar shell`
Merge pull request #284 from habibutsu/master

Error 'Command not found' when sname is used
adding Alexander Verbitsky to THANKS file
Add qualified name tests specification (see #118)

Augment 'tests' option of 'rebar eunit' command with ability to specify
tests to run using module-qualified names. This change also forced me
to change the way modules for coverage and for testing itself are
selected - module-qualified tests specifications are now taken into
consideration. Extend tests to cover new functionality. Update
dialyzer_reference accordingly.
Fix #176

Extend CONTRIBUTING.md with regards to tests and credit.
Fix a format of a debug output
Fix spec file look up

When trying to skip spec files under deps/ directory,
ignore "deps" component which is also included in Cwd.
For example, "/home/deps/src/myapp/test/cover.spec"
contains "deps" component but should not be skipped if
Cwd is "/home/deps/src/myapp/".
fix double "the" in a comment

noted by @tuncer
use the effective deps dir instead of hardcoding "deps"

suggested by @tuncer
Regression test for #249
erlc: fix typo in update_erlcinfo/3 clause
Fix #249 (erlc regression)

The combination of changes to rebar_erlc_compiler, and the fact
that erl_first_files is inherited, caused a regression. To fix
that, ensure every project uses its own .rebar/erlcinfo. While at
it, fix the issue that erl_first_files entries were not included
when initializing the dep digraph.

Reported-by: Louis-Philippe Gauthier
Reported-by: Roland Karlsson

Thanks: Tuncer Ayaz
Merge pull request #289 from tuncer/semicolon-vs-comma

erlc: fix typo in update_erlcinfo/3 clause
erlc: replace if expression with case of

Motivated by the bug fix in 2c4d7d1.