Redo feature

### Implemented the start of the redo feature
Has some problems I haven't figured out yet, such as not resetting the redo tree when a different action has been undone.
**It _does_ work!**