Set rebar.config deps back to 2.0 branches
Allow handoff sender to abort handoff by throw'ing from fold fun

There's no reason why the handoff sender fold fun has to continue
folding when there's a TCP error.  Instead, throw the #ho_acc{}
record with its error={error,Reason} field intact.

If we force the handoff receiver to exit (using exit(HO_pid, kill)),
then we simply see the following logged on the sender side:

    2014-03-17 15:53:30.949 [error] <0.27207.2>@riak_core_handoff_sender:start_fold:266 hinted_handoff transfer of riak_kv_vnode from 'dev1@127.0.0.1' 1415829711164312202009819681693899175291684651008 to 'dev2@127.0.0.1' 1415829711164312202009819681693899175291684651008 failed because of closed
    2014-03-17 15:53:30.950 [error] <0.220.0>@riak_core_handoff_manager:handle_info:289 An outbound handoff of partition riak_kv_vnode 1415829711164312202009819681693899175291684651008 was terminated for reason: {shutdown,{error,closed}}

Also, change the lager:info() message when the handoff receiver
gets a tcp_error message that *includes* the reason and
distiguishes itself from other handoff receiver log messages.

Also, one whitespace correction.
Merge pull request #626 from basho/bugfix/cherrypick/handoff-fold-abort-early-2.0

Allow handoff sender to abort handoff by throw'ing from fold fun

Reviewed-by: andrewjstone
Handoff sender sends sync periodically
Merge pull request #627 from basho/feature/handoff-sender-sync-tick20-rebased

Handoff sender sends sync periodically

Reviewed-by: kellymclaughlin
Add breadth-first AAE exchange

This commit ports the breath-first exchange algorithm from the
synctree code in riak_ensemble to the hashtree code here in riak_core.
This level-by-level exchange is necessary to support streaming and/or
pipelined AAE exchange -- an approach that will soon underpin the new
AAE-based fullsync replication protocol in Riak.
Merge pull request #629 from basho/feature/aae-exchange-bfs-2.0


Reviewed-by: jonmeredith
Crash the caller when you fail to open a file, too
Add comment describing the slight semantic change
Merge pull request #646 from basho/rdb/gh-kv679

Tell the caller when you fail to open a file, too

Reviewed-by: russelldb
Introduce exometer metrics into 2.0
Merge pull request #650 from basho/feuerlabs-exometer5

Introduce exometer metrics into 2.0

Reviewed-by: jburwell
Update tools.mk to 0.5.6
Fix edoc error in dvvset.erl

Remove use of `@title` tag in module.

From the [Edoc User's Guide
0.7.13](http://www.erlang.org/doc/apps/edoc/chapter.html): Specifies a
title for the overview page. This tag can _only_ be used in an overview
file. The content can be arbitrary text.
Fix `` quoting to `' for Edoc
Don't use @doc tag for -callback

Edoc complains and fails to build the file. Unfortunately, putting the
comment below or above the `-callback` doesn't get it to show up in the
html. But this at least allows it to succeed.
Clean up @see and {@link foo/1} edoc usage

EDoc doesn't seem to like the `{@see foo/1}` syntax within a larger `@doc`.
I've only gotten `@see` to work as the first bit of a comment line:

```erlang
%% @doc foo bar baz
%% @see foo/1
```

Many of the inline uses I was able to simply change to use `{@link
foo/2}`.

Edoc now successfully completes with no errors or warnings.
Add status types and implement transfers-limit

For all status types, we should define an explicit data format. The
purpose of this format is to allow different front ends to render the
output. The status types currently defined live in
riak_core_status_types.hrl.

The generic parser of status types lives in riak_core_status:parse/3.
The specific callback functions that do the actual formatting of the
output for the console live in riak_core_console_writer. The functions
riak_core_console:transfers_limit/{0,1} actually use the writer and
print the output for the new implementation of
`riak-admin transfers limit [Node]`.

Additionally add autosizing to riak_core_console_table

When calling riak_core_console_table:print/2 without a spec including
sizes, the table elements will be sized according to the maximum length
of element in each row. If that all fits within the console width,
including borders, then it is printed. If it does not fit, the elements
are reduced in size until everything fits on screen. If the console
width is not detected with io:columns() then the default value,
?MAX_LINE_LEN=100 is used instead.
* Translation functions from hash (integer or binary) to partition ID
  and back. Partition IDs are zero-based up to (but not including) ring
  size.
* For user-facing tools, hash_is_partition_boundary/2 can be used to
  verify whether a hash provided by the user is actually the first
  in a partition.
* EQC and unit tests.
Switch to ordsets to prop_only_boundaries faster. Also allow test to run longer to cover more hash space