Improve secondary index creation logic

- Make sure that all primary keys from the underlying table are included in
  the index primary key, so that multiple index entries per indexed value are
  supported.

- Fix a minor JSHint warning
Rename restrictions set to the more general 'tags'
Tweak docs on secondary index access use case
Simplify index creation code further

- Normalize the range index to an array internally to minimize special cases
- Build up all index bits in an array & join them
Remove obsolete cassandra bucket backend

KV buckets are now fully implemented in terms of the table storage service.
Use LeveledCompactionStrategy by default

Also some comment updates
Move order spec into index definitions

We need to specify the order of range keys in each index, so move the order
spec into each index definition.
Split out the KVBucket description in the docs
Update queue bucket notes
Small formatting fix in queue doc
adding abality to switch between insert & update
Making test run real queries on cassandra
Add rashomon transaction notes
Add some references
Update secondary index update docs
Move secondary index docs out of transactions
Add some links to related resources
Adding some more tests