Create BaseField class to build out additional field types.
Raise TypeError for invalid queries.
Call setattr during document init to ensure field setters are called.
Clean up tests that require connections.
Rename op sets in UpdateEncoder.
The $push operator should be an options_op, not $pull.
Fix ListType issues when declaring fields.
Update error message formatting.
Refactor UpdateEncoder and add SortEncoder. Move spec encoders to encoders module.
Formatting.