Shared Memory and User Input

Shared Memory objects have been added, as well as preliminary HID input(buttons only)

Actually, might be better to just use `TreeItem* internal_item = (item->children.size() <= row) ? item : item->children[row]`.