Move to lens 3.9

s/traverseAt/ix/g
Use lens-aeson instead of our custom Crawl.AesonLens
Refactor incoming messages to be Values, so we can use 'key' uniformly