add copy/paste graph options
firefly.main: Handle exceptions a bit better

    - Make the ui and data servers both log and error gracefully
      when two separate instances are started or something is already
      listening on their ports.
    - Gracefully log and error out when running in the foreground via
      something like --testing and CTRL-c is pressed.
firefly.main: handle config file yaml errors and error gracefully

Also switch from yaml.load(f) to yaml.safe_load(f) because it has
WAY more cowbell
Prefer stdlib json and fall back gracefully to simplejson

This also removes the requirement of simplejson. The json module
was added to stdlib in python 2.6, so it should exist always.
Makes statmonster's title and legend the default
Cleans up legend and title to be less confusing and more explicit
Adds other path splitters and fixes some lint errors
Merge pull request #46 from bigo/copy-paste-options

add copy/paste graph options
Merge pull request #47 from SEJeff/develop

A few random fixes to clean things up a bit
Adds documentation for the legend and title moves
Merge pull request #51 from fhats/generalize_legends_and_titles

Generalize legends and titles
Merge branch 'develop' of github.com:Yelp/firefly into sharded_data_sources
Gives Firefly its first unit tests. Only covers the new AggregatingDataSource for now.