Remove @contents array from InternalApp

The InternalApp had a `@contents` array, but as far as I can tell, it only ever contained the `@top_slot`. This removes the array, and just delegates `#contents` to the top slot. It also pulls creating the top_slot out of the `#eval_block` method, and into its own method, called from `#setup_gui`, since it's part of the setup required in order to eval the block, but not part of evaling the block.

I think this makes for a much more transparent setup. The app's contents *are* the top_slot's contents. It also cleans up our specs a lot, since we don't have to differentiate between the app's contents and the top_slot's contents.

Did I miss anything?