Location object

Modified to enable the client and server to communicate using json objects containing all of an item's information (including information added by the client) instead of location strings.  Any extra information added by the client is preserved when the objects are sent back to the client.