Issue #21190 Expand personal privs username array support to contact, customer and shipto.

I ran into an issue with address integration in Drupal.  When an end user adds an address through a "My Account" "Address Book" page like many e-commerce systems have, the new address has no associations to anything.  Because of this, the whole personal privs username array thing does not work.  If the address is added through a relation to something like a contact, we're fine, but just adding addresses or free form addresses on sales orders will never get a username association because it's built off of this which will not include those:
https://github.com/xtuple/xtuple/blob/master/enyo-client/database/source/xt/views/crmacctaddr.sql

To make this work, I've taken a stab at the "share" feature we talked about on the phone.  Similar to how you can "share" a Google document.  There is now a table xt.obj_share that you can insert users that should have access to a single record obj_uuid.

There is a type registration system that lets you build a view and insert it into xt.sharetype which will rebuild the xt.share_users view to UNION in that view.  For each resource you want to add share support, write an xt.share_users_foo view that has two columns, obj_uuid and username. The view query can do whatever you want to define a pg username relation to a resource.

When an address is inserted, xt.record_did_change() will add the current user to the list of shares.

For Drupal, what this does is allow a user to simply add an address and their CRM Account username gets automatically associated with that address and the personal privs array works.

The next step would be to expose the obj_share to records like Address as a toMany and build a UI that would allow people to share objects with other UserAccounts.

This currently doesn't have any support for readonly access, but the xt.obj_share table has columns to support that in the future.  If a user has share access, they can do full crud on the resource.  XT.Data could be expanded to check xt.obj_share for readonly access.  We would also need a "share" UI that would allow you to set read, update and delete permissions.