NF: add openers module with tests

openers module contains Opener class.  Class provides unified interface
to opening various file types, and context manager to close files that
have been opened.
RF: refactor allopen to use Opener classes

Add and deprecated compatibility allopen function.  Prefer BinOpener
class.
RF: replace allopen with BinOpener context manager

Use the context manager in obvious places.
RF: use context managers for get_prepare_fileobj

Context managers should take care of file opening and closing
automatically.
RF: use close_if_mine in trackvis reader

Closes file if we opened it.
Merge pull request #162 from matthew-brett/allopen-in-context

RF: Allopen in context

Refactor allopen function to provide context managers and a little bit of common interface between the various files that can be opened.