Terminal Deconstruction

fixes #6645 - not really a fix, it's a feature request. requested by @AssassinT90

* Terminal deconstruction is now handled by dismantle() and can_dismantle()
* dismantle() calls can_dismantle() and eventually removes the terminal
* can_dismantle() handles the different requirements of SMES and APCs
* You can call dismantle() on a terminal by clicking it with wirecutters