Basic test suite for TCP drains

The send behaviour is documented, along with basic L10'ing.
There is otherwise not a need for tests as advanced as for the http
drain buffers given there is not a lot of similar error handling code
included. (TCP drains just ignore all send errors and keep going)
Bad shutdown fix

Part of tcpsyslog drains (when connected) were sensitive to a previous
race condition on shutdown
extend logplex_drain_buffer API

allow to resize the buffer dynamically, which would be useful to support
an API similar to the tcpsyslog one.
Remove stale code from http drains

Had to do with runtime compatibility in older versions, no longer
required.
Fixing bad shutdown in end_testcase

The end per testcase function is common to multiple tests, but some of
them do not use an active drain. This fix makes the end_per_testcase
function blind to whether it exists or not.
Adding a way to unregister a channel

Tests are included. The feature will be required when upgrading
tcpsyslog drains from one kind to another -- the drain process itself
will need to transfer the channel property to the drain buffer process,
otherwise messages will be duplicated.
Requiring R16B
Partial support for cowboy 0.8.5

Also upgrades the header on bad responses to contain the explanation
instead of the generic HTTP message
Allowing write concurrency on logplex_stats

Logplex_stats is a table that receives a very large amount of writes for
one big read every minute. We should be able to generally benefit by
reducing contention on resources given pretty much all drains write to
that table, at the cost of a slightly longer blocking time when reading.
Updating rebar to newer version
Proper callbacks for SSL and TCP in http client
ETS write concurrency for real time
fixing test dependencies

fix suite argument order also
Removed unused and broken `one_for_one` shard
replacement.
Since there is now only one type of shard
replacement the atom that separated the old two
types is now redundant.
Added a shorthand to updating the single node, it
still uses the old functions but if the plan is to
stop using them this should be refactored to not
use rpc-style gen_server calls.
Created a escript that updates shards in a running
logplex node.
Adding redgrid management escript

The escript allows to do a few operations on redgrid:

- get the redgrid process status
- get a list of connected nodes according to redgrid
- suspend redgrid (and unregister from it)
- resume redgrid (and connect to it)

The script connects as a hidden node.
Removed the -s flag and added a -k flag to read
from the file. Also did a bit of refactoring to
be able to reuse more code.
Check for the `LOGPLEX_NODE_NAME` variable and 
connect to it rather then the local node if it is
set. This is mostly used for testing.