Fix overriding lane cache

Lanes would override each other, make the cache a dictionary. Then cache the
lane in a key.
Move shared Ruby functions to _shared.vim

They seem to be loaded in alphabetic order. Let's pray to god they always are.