Simpler and more powerful decorator

See #48 for all the gory details.
It's mostly support looking backward, where `field=` would check either dictionary, this now lets you do the same thing. I'd strongly consider deprecating it and requiring `get:X` or `post:X` by the time we called this 1.0.