Selectable node option

This change is similar to @chawkinsuf's, although a little more flexible in the designation of which nodes can be selected. Non-selectable nodes act as expansion/contraction headers and do not fire events. Nodes that do not specify a `selectable` property retain existing (i.e., they are selectable) behavior for backward-compatibility.