add new APIs for webapp

![screen shot 2014-11-03 at 8 57 51 pm](https://cloud.githubusercontent.com/assets/5429146/4895182/7a1fab24-63e3-11e4-89aa-512bd2c6453d.png)

Added 6 new APIs to webapp for composing HTML elements: createButton, createTextInput, getText, setStyle, replaceHtmlBlock, and deleteHtmlBlock
Also added a random() function so that the built-in droplet block works with webapp. We need to think about "common" droplet blocks and where/how those should be implemented.
Modified generateCodeAliases to support functions that don't take a blockId (which is blockly only) - that is used for the new random function.
Modified droplet palette/modeOptions code to support categories of blocks (random is in a 'hidden' category since it is already part of the palette, getText is in a 'value' category since it returns a value).
Removed placeholder turnBlack API from webapp.
Changed Webapp.callCmd to combine all of the cases into one Webapp[cmd.name] function invocation.
Changed Webapp APIs to enforce that elements are children of the divWebapp element, so they can't be used to modify random elements on our page.
Will do in next commit. I'm still figuring it out myself :)