Remove description.py entirely

These commits remove the last traces of description.py.  All functionality is now moved into the classes themselves, with the except of class_by_name which is moved into neo/core/__init__.py.

The only functionality that was removed was the name_by_class dict.  The same information can be obtained faster and more clearly by changing name_by_class[cls] to cls.__name__.  There are also ways to do class_by_name but they are slightly slower and less clear.