First pass at tree view implementation

The market tree view uses data-node-state and data-leaf-state to open
and close nodes on the tree. The leaf nodes are technically not true
leaves in that they have children themselves, but they are the last
nodes that 'open' and based on the behavior in the EVE Market, only one
of these can be open at one time, so this has been implemented the same
way.