Change unwrap_or to take a block default

* You can already modify the wrapped value using `fmap`
* It's convenient to have blocks for lazy defaults
* Useful for raising a specific exception for blanks
* Breaks backwards compatibility