Improved existing commands & added new ones

Prior to this, the lock & unlock commands created functions every time
they were executed to go through every descendant and lock/unlock
parts—it was pretty unnecessary and confusing code. Now, they get a list
of all the descendants and reduce it to parts only.

Commands enablestats and disablestats seemed like it could be plural or
singular so users might get confused. Consequently, I added aliases for
those commands that allowed both plural and singular forms to be used.

Also added commands `freecamera`, `normalcamera`, and `shutdown`.