Selection layer abstraction

There are many uses for a 'selection' layer of the graph.
The selection layer can be used to zoom to a certain rectangle scale, or
it can be used to select certain nodes of the graph. That's a design
decesion we'll have to reach together. For now, the layer is abstracted
in way that will allow us to define the functionality pretty easily.

Note: I don't really like what I did to capture mouse events. I'd love
to have a separate div container specifically for this layer, but I was
having trouble with event propogation and absolute positioning. I currently use
the main parent div as the layer's container.
Merge pull request #62 from jdhenke/selection

Selection layer abstraction
Merge branch 'master' into attributes