Platform independent audio output. Stop hardcoding /home/jasper.

# Summary #
This commit includes changes to support platform independence. This implementation detects the current platform and chooses an appropriate system command for audio output. It also does not rely on a directory structure rooted at <code>/home/pi</code>

# Changes #
1. Use <code>$JASPER_HOME</code> as base directory instead of assuming that root is <code>/home/pi</code>. This change is backwards-compatible, as the boot script will export <code>$JASPER_HOME=/home/pi</code> if this directory exists. On OS X, I set this environment variable in my ~/.zshrc.
2. Abstracted out the 'say' functionality into the new speaker module. The speaker module will select one of two implementations based on the detected platform: RPi, which still uses <code>espeak</code>, or OS X, which uses the built-in <code>say</code> command.
3. Updated <code>boot/test.py</code> to validate the list of vocabulary words passed to g2p without respect to ordering.

# Testing #
* Manual verification on both OS X and the RPi.
* Unit tests in <code>boot/test.py</code> and <code>client/test.py</code> pass on the RPi.

# Notes #
I wanted to minimize the scope of the changes included in this pull request, so I didn't mess with the directory structure. I was uneasy, however, appending <code>client/</code> to the path in order to import the speaker module from inside <code>boot/boot.py</code>. What do others think should be the right approach here?
Nit: can this be named `UnorderedList`?