Update reader to not use 100% of CPU and RAM

When a FileReader is used and it has reached the end of the file
 being read it would not block and would return an empty string.
 This would take up 100% of the CPU and eventually 100% of the
 RAM.
Extract RollingFilename and dedup TransactionFilter class
dedup TransactionFilter class and fix spelling
Reformat
Extract RollingFilename and reformat
Convert cache functions into object and reformat code
Convert cache functions into object and reformat code
Update for config file renaming
Add utils constants, functions and reanem variable.
Converts Archive functions into Classes
Update to caller super class __init__
Move startup_ignore_threshold_milliseconds from config to SerialReader
Move output_dir from superclass to this class.
Move startup_ignore_threshold_milliseconds from config to Reader
Update to call super class __init__
Update to use new Cache and Archive objects.