Update otp_release list in .travis.yml

Changes:
* Removed R14* Erlang version targets from `.travis.yml`
* Added R15B* and R16B Erlang version targets to `.travis.yml`

Background:
Until this change Travis CI was building against Erlang R14 which is not
supported for Riak (KV) according to [Basho documentation]
(http://docs.basho.com/riak/latest/ops/building/installing/erlang/),
which states, *"Riak requires Erlang R15B01"*. These consistently failed
since the ring resizing change was merged.

Since `.travis.yml` was updated last (a year ago) R15B0{2-3} and R16B
were released. R16B01 and R16B02 to not appear to be offered as choices
in Travis CI yet ([according to Travis CI's documentation]
(http://about.travis-ci.org/docs/user/languages/erlang/)).
Fix bad type specifications.

max_nb_const should be widened to include 'undefined', considering how
all callers into this function only ever pass undefined at this point.

Also, define a new 'target' type which is used, because currently, the
type is declared as string which is incorrect and triggering dialyzer
type warnings anywhere this type is referenced.
Extract riak_core_connection and tests.

Conflicts:
	ebin/riak_core.app
	src/riak_core_connection.erl
	test/riak_core_connection_mgr_tests.erl
	test/riak_core_connection_tests.erl
	test/riak_core_service_mgr_tests.erl
Remove connection manager and service manager.

Conflicts:
	ebin/riak_core.app
	src/riak_core_connection_mgr.erl
	src/riak_core_service_mgr.erl
Remove ranch dependency.
Add a background lock and task manager module to riak core.
* The goal is to allow riak sub-systems to coordinate use of shared resources,
* e.g. protect from concurrent vnode folds on the same partition.
* Locks and tokens have a settable maximum concurrency limit.
* "Taken" locks and tokens are tracked in an ETS table.
* max_concurrency is returned when the set limits are reached.
* Processes that take locks are monitored.
* Locks are released when the taking processes terminate.
* Tokens are refreshed at a specified periodic rate.
* Token processes are not monitored because tokens never "release".
* A table manager is introduced to add persistence across process crashes,
* and to allow proper table transfer to occur without losing the table.
* An EQC test exercises the majority of the API. see test/bg_manager_eqc.erl
* See the original PR for background manager here: https://github.com/basho/riak_core/pull/364
Concurrency API should return 'undefined' for limits when the ETS table is unavailable * Allows callers to try again later
Clean up query API
* Remove history API, use unregistered to signal unavailability of bg-mgr, fix set_token_rate bug.
* Prune the query API down to a consistent set of commands and adjust tests.
* Change query API to use named ETS table directly; is not threaded through the gen_server.