Add inversible "coercion" pipelines.

## Add Coercer::Pipeline for explicit coercions

The idea is to have an object that only coerces a specific type to
another specific type that fits very nice with DI.

Coercer::Pipeline is bad naming, I'm free to accept improvements.

The interface is quite simple:

```ruby
pipeline = coercer[String].pipeline(Integer)
pipeline.call('19') # => 19
pipeline.inverse.call(19) # => "19"
```

For the ease of specing I added equalizer, this might not be acceptable
for this lib. 

The added code is 100% mutation covered and no metrics needed to be adjusted. The change you see in prev commit is due flay and flog upgrades.

I'd like to have this feature for easy integration with ducktrap ;)