Adding in first draft of the program
Near Rewrite

* Rewrote Process and SocketList to use two indices instead of one. We
  couldn't do as much advanced processing to create diffs without them.
* Changed from SHA to MD5 in order to shave off a few CPU cycles
* Changed sampling rate from once per 1ms to once every 5ms.
* Removed the subtraction operator and replaced it with two different
  difference functions.
* Rewrote the CLI to use the newly rewritten ProcessList.
Factoring out common code
Final draft with near full functionality

* Any class with multiple properties inheirits from the PropertyBag class.
* All classes are now consistant in their invocation.
* IdStateLists, PropertyBags, and therefore the full process/socket tree
  can be diffed.
Finishing up formatting; cleaning up code a bit
Final draft

* Unified `IdStateList` subtraction behaviour
* `to_hash` now works recursively across nested data structures
* Outputs pretty JSON
Remove `-` operator overloading in `SocketDescriptor` classes