-Add: some more magic that we'll probably never use.
-Change: remove unused import.
-Change: util => utils.
-Add: py3k's lru_cache mechanism.
-Fix: rename import to reflect module name change.
-Add: EnumHelper util.
-Add: Enums for packet direction and protocol.
-Fix: build on get_name and get_from_name.
-Add: Packet registry, to keep track of all known packets.
-Change: Use the new packet registry for all packets.

This includes forcing the use of the protocol and direction specifier...
Note that these inherit from their parents
-Change: mark the base Packet as abstract.
-Change: change up __init__.py with the new classes.
-Change: move protocol and direction to Meta.

Note: this does not exclude them from inheriting, so inheritance still
applies as normally.
-Change: remove unused import.
-Change: silence pylint.