Methods defined in widgets are available in URL instances

This is the problem that methods defined through a widget definition were not accessible from Shoes::URLs (see #890)

* Shoes::App handles method definitions and subscribers
* fixes #890

Should be good to go, would like a code review, though. :-)
The easiest way to feel clear about that to my mind is trying to write code like that or change code like that. I felt unsure about a lot of things, especially those method call forwarding things until I built them myself. Since them, they are rather easy going. 

In its essence what it does here is just it tells the class: okay there are a bunch of methods here (which are basically the DSL methods) and if anyone wants to call that method on you please refer them to the object that is returned by your `app` method.

`public_instance_methods(false)` is just an awesome thing you can use on any class to see all the public instance methods a class defines. The `false` just means not to include methods of the ancestors of that class.

Using public_instance_methods in irb is pretty neat if you're looking for a method that could help you (although, most often the docs would be a better place)