Revised the API of fields.

We're no longer using the descriptor-based approach, instead opting for ``__getattr__`` & delegation. Details forthcoming in the design area of the docs.
Added some of the design docs around the decisions made thus far.