PostMedia() now supports file-like objects

PostMedia() now accepts file-like objects with an read() method in
addition to passing the media as a filename or HTTP URL. Closes #125

Also we now close the FP after read()ing it when using a filename as
parameter.