Merge lookout's changes

Tyler created 3 branches in lookout/zipkin:
 1. master - based off upstream/master
 2. lookout - lookout maintained master, to be merged with upstream periodically
 3. old-master - master before these new branches

This PR => Cherry picking old-master commits into branch "lookout"
there are also some commits from upstream/master from 12/17/14