Monolithic commit (see commit notes)

Progress:

- Rewrote some db functions (suffixed with `2`) to use the raw-index instead of datalog. They are now 60x faster. Importing the first 10,000 blocks took ~100 seconds, now it takes ~16 seconds.
- Got my first green test for :op-checksig. I've successfully verified block 37513's txInput.
- Started reorganizing codec.clj into codec2.clj. So far, key.clj and codec.clj are on course to get replaced by keyx.clj and codec2.clj.
- Started generalizing some codec functions (in codec2.clj). touch-all allows me to serialize my entity-maps with Gloss. encode-* and decode-* helpers introduced.

TODO:

- Now that I can import the blockchain 60x faster, I tried to import all 160k+ blocks in blk00000.dat but ran into my first duplicate :txn/hash where it threw a :db.error/unique-conflict error. Txn hash "e3bf3d07d4b0375638d5f1db5255fe07ba2c4cb067cd81b84ee974b6585fb468" is the first duplicate in the blockchain, appearing first in block 91722 and a second time in block 91880. I haven't yet decided how to handle this. (BIP30, https://github.com/bitcoin/bitcoin/commit/a206b0ea12eb4606b93323268fc81a4f1f952531)
- I need to test more op-checksig cases. My op-checksig multimethod needs a txIn datom for its calculation which is tedious to replicate by hand, so I should build a `mem` transactor just for testing that import select blocks from the real blockchain.