Added custom exceptions, for better handling
Now using new exceptions for better output
Now using struct.pack/struct.unpack for the integer (un)packing
Added some test cases (just for the utils, right now..)
Replaced bytebuffer() objects with mmapbytes()

New objects:

    * ``FileWindow``: for "windowed reading" of generic files
      (we couldn't use mmap as it works only for actual files,
      not on file-likes)

    * ``mmapbytes``: a generic "memory mapper" that emulates
      a bytearray() over a generic filelike supporting enough
      methods.

    * ``FileSeek``: a context manager for temporarily seeking
      in a file. Restores the previous position on __exit__().
Commented-out old bytebuffer() object (unused)
More descriptive endianness definitions