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.
Made windows appendable.
Updated CONTRIBUTING.md
Updated Contributing.md again.

Still not following my own guidelines...
Merge pull request #47 from Tribex/widget_child_blists/wlists

Add widget style whitelists and blacklists.