Reworked plex-reporter.py

plex-reporter.py
- startswith_list, event_categorize, decode_content_session__info,
  datetime_diff, format_date,
   - moved into plex/event.py
- PlexEvent
   - moved into plex/event.py
   - new method to_dict, returns a dictionary object that can be used to
     recreate itself.
- EventParser
   - moved into plex/event.py
- EventParserController
   - moved into plex/event.py
   - no longer uses weird yield/generator for the parser.
   - is now serializable with pickle, for inbetween calls.
- LogLoader
   - moved into plex/event.py
   - no longer needs __enter__, __exit__ code
   - now only feeds events that are needed into the EventParserController
     it will skip log files if they an earlier day than last_datetime.
- state is saved between calls with pickle, pickle keeps track of
  last_datetime.

plex/event.py
- contains most of the code from plex-reporter.py