Add UnlessDisposedDelegator

Here's a class we might use to avoid `unless @real.disposed?` calls (see #480). If the delegation object is disposed, it passes the message to a null object that swallows everything. Otherwise, it passes the message to the delegation object, as usual. Use like this:

```ruby
@real = UnlessDisposedDelegator.new(:Swt::Graphics::Color.new(Shoes.display, @dsl.red, @dsl.green, @dsl.blue))
```