Multi-select functions

Support multi selection, drag selection.
Reorganize node and link data objects with prototype inheritance.