add variable functionality

 * it registers itself to the parent node
 * it implicitly converts to T
 * it has an assignment operator
 * it allows value setting from lua
 * it deregisters itself when deleted
add auto deregister