Beginning work on an audio API. Some dependencies will be needed.
Merge pull request #42 from Nateowami/master

Audio.js Working
Comitting for merging purposes. Not done yet.
Merge branch 'master' of https://github.com/Tribex/RapidS
Changed audio.js to playback.js and moved the audio object creation to
0_init.js, also added Globals.getCWD(fileAndURL) to prevent current
directory glitches.
Fixed sound playback glitch.
Audio updates, can now play OGG and MP3 files.
Custom painting on panels (May implement this for more widgets) can now
be done by way of setting 
```program.getElementById("EXAMPLE").paintAbove = function (graphics)
{};
```
(Paints above the component children, can have some artifacts.)

*and*
```
program.getElementById("EXAMPLE").paintBelow = function (graphics) {};
```
(Paints below the component children, usually failsafe.)
Removed some excess testing code.
Cleaned up init.rsm a tad.
Pass program arguments to program.onload()
Pass program arguments to program.onload()
Merge branch 'master' of local repository into pass_args
Merge pull request #44 from Tribex/pass_args

Pass program arguments to program.onload()
Added CONTRIBUTING.md that describes code style and the comitting
system.
Merge pull request #45 from Tribex/master

Added CONTRIBUTING.md
Update CONTRIBUTING.md
Merge pull request #46 from Tribex/master

Update CONTRIBUTING.md
Converted loadInComposite to JavaScript in preparation for widget
parent/child whitelists/blacklists.
Did a ton of work relating to moving window creation to JavaScript, in
preparation for a proper whitelist/blacklist for widget parenting.

Already works for the most part:
Widget registration can now have an additional argument, a string array
containing children to allow or block.

Usage case:
["*", "!tab"] - Allows all widgets as children except tab.
["*"] - Allows all widgets as children
["tab"] - ONLY allows tab as a child.
Fixed a couple of window-related glitches.