Implement unique-ing of in-memory seec::cm::Value objects.

Implemented ValueStore, which provides the storage and unique-ing of in-memory
Value objects. The internal implementation class ValueStoreImpl provides a
lookup table from address and canonical type to Value.

All calls to getValue() functions now require a ValueStore, which the produced
Value objects will be associated with. Whenever an in-memory object is created
(either directly from the getValue() call, or by accessing the child or
dereference of another Value), it will be associated with the provided
ValueStore. The ValueStore stores a shared_ptr for all Value objects, so they
can never be destroyed while the ValueStore exists. When the ValueStore is
destroyed, the existing Value objects may remain, but any attempt to access
children or dereferences of those objects will fail (returning an empty
pointer).

Updated the seec-trace-view tool to maintain a ValueStore for each state, and
to use this when producing Value objects.
Fix ValueStore to store shared_ptr rather than weak_ptr. Also remove some
debugging print statements.
Merge branch 'master' of https://github.com/mheinsen/seec