Add some documentation.
Allow every attribute to be customized in serializer.

Define a default implimentation, but allow it to be overridden.
Progresses commit: functional refactor.

TODO: clean up dead code, move modules.
Remove dead code, tweak apis.
Sigular formatter.
Merge pull request #5 from AgilionApps/refactor

Refactor