STYLE: adding in documentation and making consistent order

Change-Id: Ib3ef15d93e7b598721e1754758892856abdd450d
use smartpointers to simplify memory management.

Change-Id: I3705caaef2f656c70050f6db2f8030aff7b581fa
STYLE: more updates toward kitware style

Add required doxygen Description markers, most still unfilled.
Search for ? to see them all.
80 char lines
//78*- to visualy separate methods in cxx files
if (test)\n{\ncode\n}\n
includes in alphabetical order
public:protected:private: order
todos added to mark other potential issues

Change-Id: I8c72cf1e9ee689e45af0739cf2630a97f3a6a5bc