Add multiselections to treelist control

I've added the ability to have multiple selections in a treelist control (if the style is enabled).  The multiple selection mechanism attempts to behave like multiple selections in a listview.  Control and Shift keys work generally as expected.  However, selecting a parent does not select its children unless done explicitly.  

There is no longer a **tl->selected_item**.  Instead, the selection(s) are determined strictly by the item state.

I realize this is a sizeable change, so I understand if pulling this in will require some serious consideration.