Initial pass at interior "play", "edit", and "add" views

This is just a rolling PR as a heads-up. The changes need quite a bit of clean-up and refactor work before they are ready to merge. Feel free to comment on any particularly heinous code in the meantime.