Sends the same events from tubelib interaction as would be sent from pipeworks
* Moved the tube_can_insert and tube_insert_object callbacks out of the node definition so they can be re-used in the tubelib registration
* Optionally required tubelib and registered callbacks for pushing and pulling
* Used "speculative pull" variable to only send a "take" event if tubelib's unpull is not called after a pull - this happens when it tries to take an item but there is no room, so it fails