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.
Both of these should inherit from a base `block` that handles the interpretation of attributes on `created`. The `detached` method is just a placeholder as-is and can be dropped.