Fixed some const correctness
Whole bunch of documentation
Consolidation of op codes into classes for readability
Merge back of the cleanup