Add Choose.xmap

Choose.iso provides a simple way to create a Choose instances from an
isomorphic type with a Choose instance. For example, to create a
Choose[Date] based on the existing Choose[Long], one could write:

```scala
implicit val chooseDate = Choose.iso[Long, Date](new Date(_), _.getTime)
```

I've found myself wanting this functionality when creating Choose instances for Joda DateTime, FiniteDuration, etc.