(Closes #5) Ordered fields

Hash representations of Document fields are in the same order they are defined
in the Document class. BaseField keeps a counter for the sort order.