BUG/ENH: Remove repeated exception classes

FileFormatError and RecordError were declared twice in the exceptions
module.

FastqParseError was missing a docstring which has now been added.

Fixes #257
ENH: copy paste context manager and tests from
my gist: https://gist.github.com/Jorge-C/10662095
MAINT: reorder and fix imports
TST: add BytesIO test
DOC: minor change in docstring.
TST: tests need main
ENH: use new context manager to deal with file opening.
STY: whitespace
DOC: add module docstring
(thanks @ElBrogrammer!)
DOC: Small docstring improvements
API: renamed `open_filepath_or` to `open_file`
ENH: use `open_file` in OrdinationResults.from_file
STY: whitespace
Merge pull request #308 from ElDeveloper/except-the-exceptions-that-are-excepted-in-the-exceptions-file

BUG/ENH: Remove repeated exception classes
ENH: support file names in `to_file`
TST: Add `__main__` to test file.
TST: Test to_file and from_file both using filenames and file like objects.
MAINT: reorder imports
TST: test file names in to_file method
PY3: read+write files must use mode 'r+'