Removing 'property' module, replace with 'shop'

Discovered a method that reduces complexity, but uses RTTI.  Hoping that RTTI
does not incur significant overhead, and that the compiler will optimize it
away--or at least a little--when building a release version.  Have basically
streamlined the concept and implementation of what began with the 'property'
module, and defined the abstract concept behind it by naming it 'shop'.

The idea is that--conceptually--a shop contains an inventory of some quantity
of objects, but only one of each type.  If a request is made to produce an
object of *any* type, the shop will check its inventory, and if the object is
not available, it will construct one (using the object's default constructor);
this guarantees availability and correctness of response to every query.

If the shop user does not wish to have a new type of object added to the shop's
inventory, they can search for the object and receive a boolean response as to
its existence in inventory--a "do you have a...?" query.

The caveat is that the shop retains sole and un-transferable ownership of the
objects in its inventory, and all them must originate from
the shop.

If it is necessary to add more than one object per type, containers can be
added to this object.

It is worth noting that it is likely possible to add functions to the object,
of any type.

Need to:  * Add a 'remove' method.
          * Test the ability of the shop to receive arbitrary function objects.