Allow arbitrary value extraction code to specified

Adds a `:with` option to the `#exrtract` method whose value is a proc that performs the extraction.

```ruby
   extract "parent", from: "/_links/up", with: ->(hal_repr){hal_repr.related_hrefs("up").first}
```