added echodome geometry and modified network to send smaller packets to avoid "message to large" errors
removed print statement
Accept anything castable to tuple in SetAll command rather than type-checking.
Use address instead of fixture to refer to addresses.
Log error instead of crashing when a SetFixture command refers to an invalid fixture.
Make YAPPI an explicit command line argument.
Profile Networking.write.
Import sys.
Use generators here and there. Hoist some variables out of inner loops.
Some performance improvements to Networking.write.

* Use a numpy-based HLS to RGB converter instead of converting each color in
  Python using colorsys and de-rezzing / caching.

* Don't use array to construct the packet since it's slower than just using
  Python lists due to the conversion overhead. Profiling showed it was faster to
  convert it in one call than incrementally.

* Cache intermediate lists as scratch space so we don't allocate a few KB of
  memory for every write (and cause GC churn).

From my profiling the average time per-call dropped from .032 to .008. Average
FPS went from 20 FPS to 28 FPS on the echodome scene.
Swap loop ordering in Networking.write to avoid re-processing strand data when multiple clients are enabled.
updated scene to remove door
Calculate actual time since last frame (dt) for tick instead of theoretical time. This keeps animations proceeding in real time even when the frame rate is lagging.
Oops, colors.hls_to_rgb wasn't actually working.
Don't call setup_pars in SimplexNoise on every draw. Re-generating the luminance fader is slow.
Convert range() to xrange() here and there.
Add a simple stub OSC server that listens to audio feature updates sent from Mixxx and emits Qt signals when feature updates are received.
Skip Emacs lock files in plugin_loader.py and preset_loader.py.
Add virtualenv/ to .gitignore.
Profile on_tick_timer.