Replace the spring multimethod with Springy

Protocols should save a function call per dispatch.