Merge pull request #503 from shoes/app-proxy

Remove state from Shoes::App -> Shoes::InternalApp

This is so we have a clean App context in which users can set instance variables, declare methods, etc, without having to worry about collisions with Shoes internals. So, users use Shoes::App, but Shoes internal classes use Shoes::InternalApp.
Fix unexpected messages in TextBlockCursorPainter specs