#40 Initial migration, need tests and example data
#40 Replace default cache in client
#40 Starting to add in tests
#40 Don't allow non-Identity objects to be stored in cache
#40 Added .public method to Identity
#40 Cache sync method in IdentityCache class
#40 Changed internal Identity object structure to dict
#40 Cache dict serialization
#40 Identity cache load and save from file
Closes #40 - Identity integration complete for now
Improved classes RawData and String in module ejtp.util.py2and3
Replaced string constants with actual constants in module router

Router.runstate was either "stopped" or "threaded". To avoid problems with string handling there now are the constants STOPPED (=0) and THREADED (=1) in module router
Replaced all relative imports with absolute ones
Classes RawData and String from module ejtp.util.py2and3 now correctly support unicode

RawData and String now use methods encode and decode instead of unichr(ord(char)).
Thus multi-byte unicode characters are now supported.
Changed __getitem__ of RawData and String to return instances of themselves
Added export methods to RawData and String

You need this methods to call methods like json.loads because they only accept builtin strings. export() is not considered for using it anywhere apart from this!
Added decorators for RawData and String

Also added __int__ for RawData to convert it to int if it contains only one byte
Changed call of decorators to kwargs instead of bitmask constants
Implemented RawData and String in a chunk of files

That's still not all files that need the implementation but at least it's something.
I also changed client.py to use the new Frame constants
Implemented RawData in ejforward and client