Rename Attachment class to BaseAttachment.

It's not good to keep attaching stuff to this class; it gets more
weighty.
Items and moves are no longer inside a function.
Implement several abilities; required big refactor.