improve scalability when determining effective ACLs
improve scalability when determining effective ACLs

1. adds `ancestors` column with array of ancestor namespace IDs
2. adjusts all DB access to carry `ancestors` through our objects and DB access
3. adds partial GIN indices to help gather non-null subtree-ACLs from ancestors
4. rewrite ACL gathering to use new indices
5. add auto-upgrade to alter existing hatrac database in-place at service startup
  - with web.py the startup is lazy and happens on first web request

This set of changes should help keep query cost and latencies down as
a Hatrac store grows to have many more namespace and object names in
its tables.

informatics-isi-edu/hatrac,informatics-isi-edu/hatrac