Slight overhaul of errors and method lookup

Allow custom, more specific error messages, and make extra data as kwargs (not args).
Add helper methods to CloseMethod for getting back exception objects, method objects.
errors: Add a simple equality definition

Error instances must match exactly, including type, message and extra data.
tests subpackage for methods, and tests for methods.common

methods.common is the only module worth testing as all others are very simple applications
of functionality that should be tested by frames.tests.test_method, not methods.tests.
Fix a missing import of a relevant data type in frames.__init__

Timestamp was not being imported from datatype
common: Implement classproperty

A classproperty is a decorator that acts like @property but the called method is a classmethod.
This allows properties to work from the class level, ie. MyClass.computed_value
frames.datatypes: Refactor Bits to actually do what is advertised

It wasn't actually implementing the "None is reserved" behaviour at all.
The internal representation of _Bits was changed to a dict {name: value}
and values associated with None are set False on pack and ignored on unpack.
methods.common: Fix errors found by tests
frames.tests.test_frame: Clean up unused imports

Likely left over from when common method definitions were moved to common.py