Exposing means of removing attachment via UI

This commit is the "Green" element of Red, Green, Refactor.

It exposes a means of dettaching a file from a given work. It also
begins to model how Hydramata::Works will be handling complex
predicates.

More work needs to be done on the ToPersistence class as there is a
very nasty chunk of interrogation going on. I believe the solution is
to create a similar NamedCallback structure as the Runner.

```ruby
value.with_type do |on|
  on.attachment { |attachment| ... }
  on.dettachment { |identity| ... }
  on.attribute { |value| ... }
end
```

I will explore this at a future date.
Use `delegate` to define delegations.