refactored integration tests so we have more than one test for the controller (e.g. organize by function).
tests for time as part of system container
refactored integration tests to separate out core-connector from app-specific objects.
unsigned short decoder (needed for value profile). Added __str__ method to common equality to make test output more readable than the default case for classes.
created v03x directory for main connector classes for this version (in case we later want to implement a connector for v02x.)
ValueProfile encode/decode tested
started expanding stub objects starting with SystemProfile, to mirror the object hierarchy in the controller.  SystemProfile now maintains a root container and a map of id_chain to stub object instance.

The stub objects provide a OO interface to the controller and hide some of the low-level details (e.g. data encoding/decoding.)
decode_definition() takes controller  as 2nd param.
Instantiated objects have a "definition" attribute that holds the original object definition (which is encoded and sent to the controller.)
controller objects can fire events (e.g. value changes, object added/deleted in container so that interested listeners are made aware of changes to the system.)
decode_definition takes an additional controller parameter. Other parameters may be added later, so adding vararg params.
recursive equality detection when used with objects that have cyclic references
decode_definition on some objects missing controller parameter.
Avoid recursive ___eq__ definition in profile by explicitly defining equals.
test case base classes marked with __test__=false so that they are not run by nosetest.
Actual test cases (subclasses) have __test__=true. By having unittest.TestCase in the base allows IDEA to correctly identify the object as a test.
moved datamodel class to service
documentation, PEP8
test case fixes. RootContainer used to take a controller as the c'tor arg. Now it takes a profile.
detection of cyclic calls to equals was incorrect. (The previous implementation checked for recursion, which is valid, but we don't want to recurse on the same pair of objects.)
ForwardingEncoder/Decoder to allow the encoder/decoder to be changed without using subclassing.
don't load existing profile when starting test since the profiles are erased anyhow. This prevents issues with previous persisted state not being compatible with new classes.
ObjectTestHelper creates a default profile so tests don't need to do this and can focus on creating and testing objects.
separated out persistence tests from base tests.
updated arduino tests to include new ones from the cross-compile