Added tests, refactored code, tested with Split

Added tests, refactored code, tested with Split - I worked on a branch for a couple days and merged the branch with this commit.

175684d6075b303ba52a7593e52e32b475cd394c

Code is tested with Split, so pretty sure it's A-OK. I've scheduled a code review with TJ for later today or tomorrow (Friday).

Some ideas here - came up with a pattern for the concrete model classes that separated out the code generated by the modeler and the behavior that is provided by VIManagedObject. Category makes it easier to keep in sync with the modeler design, leaving the generated code files nearly untouched.  The methods that are required for override are left unimplemented, but declared, in VIManageObject, so that you'll get a compiler warning to guide you to that.
-Christopher