CBD-51: Encoding/decoding for termless format

GeoCouch doesn't store Erlang terms, but binary data. This needs
to be encoded/decoded for the use within the Erlang code. The
vtree_io module handles all that. You can easily write and read
a node.

Change-Id: I70429013fdf3dcf8b7f215c6fb382092a81f4014
Reviewed-on: http://review.couchbase.org/21023
Tested-by: buildbot <build@couchbase.com>
Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
Reviewed-by: Volker Mische <volker.mische@gmail.com>
CBD-65: Throw exception for non valid fill values

There are values for the minimum and maximum number of child nodes
that are not valid. For example you can't split 7 nodes into two
partitions with a minimum of 4 and a maximum of 6 nodes. If those
values are given, throw an exception.

Change-Id: I4fed4464c4067425f9a7fe882a9e9ac822d65c79
Reviewed-on: http://review.couchbase.org/21024
Tested-by: buildbot <build@couchbase.com>
Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
Reviewed-by: Volker Mische <volker.mische@gmail.com>