Roll query encoding into its own class.
Make query encoder constants class variables. Be more concise in
QueryEncoder.encode().
Clean up after tests so that the rest of them behave properly.
Fix find_and_modify test for partial documents.
Add UpdateEncoder for encoding update specs.