use def_delegators instead of method_missing for Shoes::URL

* we know all the methods we want to delegate in advance, so
  def_delegators communicates that better
* also it is (presumably) faster than walking down the method
  chain once already
* also it is less prone to errors... e.g. trying to delegate
  methods we do not want to delegate

probably still needs to be applied to `Widget` - but Widget is pretty weird. Actually I'm not quite sure if `Widget` works atm... e.g.

```ruby
klass.send :class_variable_set, :@@__app__, self
```

we do not have `@@__app__` but `@_app__` or is that a weird naming coincedence... dunno. Have to check.

This could also go in standalone, would love a review!!!

// tackles #597  @plexus