General pytlint cleanup everywhere.

config.json changes:

  Modified camera definitions to be named, instead of a list.
  Modified Rule Definitions to use 'behavior' -> daily/interval, instead
    of the secondary field 'interval' to distinguish the behaviors.
  Added new optional field 'download_name' to rules which means download
    the given url to a local file in the servers downloads directory, instead
    of fetching the URL and throwing it away. download_name may contain {time}
    if you want a timestamp embedded in the name.

Rules Engine Changes:
  Added support for the above changes.

Fixed logging:
  We now log to the internal buffer (visible via the web interface) at WARNING
  level, and to stdout at DEBUG level.
  Log formatting is defined.
  Twisted -> Python logging is working better.

Added an action module which contain wrappers for fetching and downloading
  behaviors. This should grow into a general action handler, but isn't very
  far along yet.