Added some documentation about a few of the implementation members.
Made many of the members private and removed tests for them which
can no longer be used.
Now create a folder per month for log files and always timestamp the name.
Rotate the log files.
Changed some code layout to make it clearer and removed some redundant
code.
Merge branch 'feature/mlz-61' into develop