Subscriptions

Implements subscribing and unsubscribing, and fanouts of blocks and unblocks.

Defines a new SharedBlocks table but does not yet use it, currently only uses fanouts from block diffs. SharedBlocks will be necessary so that auto-blocks (from young accounts, low follower accounts, and subscriptions) don't wind up in the shared block list on first subscription.

cc @BooDoo for code review.