removed sleep in iOS callback that was causing errors
commented out pthread_barrier code

pthread_barrier_t isn't supported in iOS
added custom barrier implementation

http://ptgmedia.pearsoncmg.com/images/0201633922/sourcecode/barrier.c
http://ptgmedia.pearsoncmg.com/images/0201633922/sourcecode/barrier.h
http://ptgmedia.pearsoncmg.com/images/0201633922/sourcecode/errors.h
Restructured addAudioObject callstack

Sonic now has 5 public methods for adding an AudioObject:
(1) With just a filename (location defaults to the origin, velocity defaults to zero)
(2) With a filename and a location (velocity defaults to zero)
(3) With a filename and a location in polar coordinates (velocity defaults to zero)
(4) With a filename, a location, and a velocity
(5) With a filename, a location in polar coordinates, and a velocity

These in turn call one of three World::addAudioObject methods:
(1) Filename
(2) Filename and location
(3) Filename and velocity

Polar coordinates are converted to cartesian coordinates when appropriate before being passed to one of these three.
Each of these three methods corresponds to a similar AudioObject constructor.

Note that for an object to have a specified velocity, it must have a specified location.
moved mixer3D, myWorld from CAU to Sonic
Finished restructuring, but with linker errors

Currently CustomAudioUnit.cpp includes Sonic.h, in order to have access to
Sonic::onCallback(). This seems kind of hacky though and may be the reason
for the aforementioned linker errors. A better structure would be to rename
CustomAudioUnit iOS_Sonic, then to store the core Sonic library entirely
within this class. iOS_Sonic would have simple wrapper functions for each
one of the core Sonic's public methods, but would implement play() and stop()
in accordance with the iOS requirments (like CustomAudioUnit is doing now).

Essentially the only purpose the core Sonic library is serving is at each
time step to fill the output buffers with the appropriate audio data.
The platform-specific wrapper (in this case iOS_Sonic) is responsible for
then taking that audio and passing it to the hardware.
renamed CustomAudioUnit iOSSonic
restructured again with iOSSonic as a wrapper, but with linker errors
added include guard in location.h
standardized include guard vars
resolved linker errors

by initializing Sonic::Mixer3d and Sonic::myWorld in Sonic.cpp but
outside of any function

http://stackoverflow.com/questions/185844/initializing-private-static-members
removed Sonic::createWorld()
moved audio unit initialization to .cpp file

also renamed audioUnitInstance to myAudioUnit for consistency (a la
myWorld, etc.)
added a TODO statement
removed null check on World in addAudioObj
radius/azimuth computes now take Location* instead of AudioObj*

things are more composable this way.
also renamed Player::location to Player::myLocation to distinguish
between player's location and audio object's location in computations.
added TODO statement
added Sonic::createWriteThread(), playback now working

Sonic::createWriteThread is just a wrapper for World::createWriteThread().
Should we even have a World object?
removed TODO statement
Merged iOSSonic wrapper changes into multithreaded Mixer