Add Share Users Access Cache Table and Triggers for Performance Improvement

There are a few downsides to the `public.address` view:
1. It doesn't include the `addr.obj_uuid` column which is what all of this works off of.
2. We drop and rebuild all `xt.xxx` views in build_app which allows us more control over making changes. Everything relying on `xt.crmacctaddr` will be rebuilt. The `public.address` view doesn't follow this paradigm and cannot be safely `DROP CASCADE`d like the `xt.xxx` views can. This feature of the `xt.xxx` views has proven to be very useful when doing refactoring. I don't want to get tied to a core `public` schema view I can't ever get ride of or rebuild completely.
3. The `public.address` view has a default `ORDER BY` which makes it slower.