Provide and use Blockly.Component towards making it possible to remove globals.

I originally thought that a context object would be useful, but then realized that
when everything is a Component, it can get the top component by walking the parent
tree, possibly memoizing if it is too cumbersome.

Eventually, many of the methods in Blockly can be moved to the top component
(currently SvgComponent, but I may subclass it) and things like "hide" can be
an event rather than a fixed list of global objects to hide.

TBR=neil.fraser.gmail.com
BUG=103

Review URL: https://codereview.appspot.com/7284046

git-svn-id: http://blockly.googlecode.com/svn/trunk@619 c400ca83-b69d-9dd7-9705-49c6b8615e23