Shut down trigger if initial mysql connection doesn't work.  Use a
try/catch to display some information about the connection failure
without a traceback.  For other mysql issues, we will leave as is
(dumping the traceback) because they would represent coding or
transient issues, and we should present as much information as we
have.
Make patches agains 'develop' branch rather than 'master'
Merge pull request #65 from mvh/mysql

fixes #60
First pass at NetDevices metadata loader

- Not bolted into NetDevices class yet, so don't even try
- trigger.netdevices is now a package
- trigger.netdevices.loader provides BaseLoade
- default loaders are in trigger.netdevices.loaders (currently only
  filesystem loaders provided by default for JSON, XML, Sqlite,
  Rancid, and *new*: CSV!)
- New setting: NETDEVICES_LOADERS to define a list of custom loader
  classes to try in turn. The first one to return data wins.
- Still not sure how to specify the path to a metadata "source" within
  the settings file. Will perhaps try to default to ``/etc/trigger`` and
  load using filename ''netdevices'' with a variable suffix based on the
  Loader type? Or maybe just whatever is defined within NETDEVICES_FILE
  or NETDEVICES_SOURCE?
Exception and docstring cleanup
New url parsing lib for testing URI-based file paths for metadata
- Fix to make parse_url support file paths or URLs
Remove local imports from trigger/utils/__init__.py
- Update global settings and sample trigger_settings.py to use NETDEVICES_SOURCE, remove NETDEVICES_FORMAT, assign NETDEVICES_FILE to NETDEVICES_SOURCE
- Remove prints from Rancid and CSV loaders
- Don't pre-build loader objects because they are only called once at startup
+ Cleanup in netdevices

  - Remove SUPPORTED_FORMATS
  - Remove deprecated _parse_* functions
  - Remove parser imports
  - Update _munge_source_data with new arg signature
  - Update _populate and NetDevices._actual constructor w/ new args
  - Replace NETDEVICES_FILE with NETDEVICES_SOURCE
Merge pull request #55 from jathanism/issue-55

make it easy to populate NetDevices from arbitrary sources
- Add Allan Feid (crazed) as contributor.
Fix attribute error when trying to connect interactively causing logins to fail.
- Tacacrc() only called once when creds aren't provided
Added force_cli flag to execute() and Commando constructor to force CLI
execution on Juniper devices instead of Junoscript
- Iterate commands iterables instead of assuign they are lists. Also
  explicitly cast these to lists when we need them to be one
  explicitly.
- Fix typo in docstring in conf/trigger_settings.py and
  trigger/conf/global_settings.py.
ACL parser fixers for IPv6 and negated (T)IP object sorting

- Negated IP objects are always < than not negated so we follow Juniper's
  sorting method.
- Re-add of " except" parsing for negated objects.
- Make sure the repr on negated objects displays the prefix before " except"
- Negated IP objects will always be assumed to be used for Juniper ACLs
- Always display the prefix on /32 and /128 IPs in Juniper ACLs
Remove extra debug prints from ACL parser