Added Any.ifSelf, closes #127
Added Any.unlessSelf (and an alias: filterNotSelf), closes #128
Experimenting with expressing tests as single assertions
Added Random.between
Added PartialFunction[A, B].toRight: A => Either[A, B]
Added PartialFunction[A, B].toLeft: A => Either[B, A]
Added Either.leftFlatMap
Added Either.rightFlatMap
Added Either[L, R].valueOr(L => R): R (alias for rightOr)
Added Either[L, R].valueOr(PartialFunction[L, R]): Either[L, R]
Added Either[L, R].rescue(L => R): R (alias for rightOr)
Added Either[L, R].rescue(PartialFunction[L, R]): Either[L, R] (alias for valueOr)
Merge branch 'master' into 2.9

Conflicts:
	core/src/main/scala/pimpathon/either.scala
	core/src/main/scala/pimpathon/function.scala
	core/src/test/scala/pimpathon/any.scala
Added Map.mapKeysEagerly
Added Map.partitionKeysBy, closes #44
Added Map.partitionValuesBy, closes #167
Merge branch 'master' into 2.9