Use ring-codec for form encoding

This is quite similar in function to #5 from @stask - I only noticed it after I'd written this!

Rather than introducing a new implementation of the form encoding, this simply leverages ring-codec.

This doesn't actually handle nested maps, but that can either be done as a pre-step that flattens into "name[keys]" or put into ring-codec upstream so that it's available elsewhere.