Lots of changes. More client code changes.

plex/client.py
- now uses isoweekday (1 .. 7 instead of 0 .. 6)
- New restrictions And, Or, Not restrictions for combining restrictions.
- Initial restriction action code.

plex/event.py
- events now marked whether they are live events or not.

plex/media.py
- PlexMediaVideoObject's now have added_at and aired_at values
- PlexMediaMovieObject & PlexMediaEpisodeObject now have genre values, which is
  a list of strings or None if the results are not yet looked up.
- PlexMediaObjects are all now smarter, and now search the xml/soup for the
  right tags based on ratingKey. This means that plex_media_object_batch can
  reuse the same xml text and BeautifulSoup objects.
- PlexMediaExceptions no longer break plex_media_object_batch.

plex-reporter.py
- a few changes, mainly showing how to debug events that maybe causing weird
  results.