Fixes #38 by allowing BufferedFile.read() to accept no parameters.

Problem only occurred when using BufferedFile from a non-seekable stream such as
a network socket.  In this particular case the code was asking for .read() without
a parameter (which means, read all of the data) and BufferedFile had no default value.
This implements the default value (with a negative value) and then forces a complete read
of the underlying fileptr.

Adding a sheet to the horrors collection as it has no cells in the first sheet, has a
corresponding test.

Also stops a failure to detect encoding blowing up, instead just choosing a sensible (
or should that we wishful) default.
Upgrade version of XLRD used to get my patch
Updated setup to require xlrd 8
Use default value when reading whole file in tests
Merge branch 'master' into 38-fix-buffered-file

Conflicts:
	test/test_rowset.py
Fix merge
Merge pull request #39 from okfn/38-fix-buffered-file

FIxes BuffredFile when fed a socket.