new readbytes and readbytes! functions

This pull request expands the functionality of the (internal) `readbytes` functions that we already had into two new (exported & documented) functions (inspired by the functionality in Python's [RawIOBase](http://docs.python.org/2/library/io.html#i-o-base-classes) class):
```
readbytes!(stream, buffer::Vector{Uint8}, nb=length(buffer))
readbytes(stream, nb=typemax(Int))
```
The `readbytes!` function reads up to `nb` bytes into `buffer` (growing it as needed), returning the number of bytes read.  The `readbytes` function reads up to `nb` bytes and returns a new Vector{Uint8} buffer containing the bytes read.

(Incidentally, we had two different implementations of `readall(s::IO)`, one replacing the other; I kept the one that uses `readbytes`.)

PS. I added this functionality to make it easier for PyCall to pass Julia `IO` objects as the corresponding types in Python.