Added Boolean.asInt
Added GTL[K].asMap.withConstValue[V]: Map[K, V]
Multimap[F, V, K].multiMap.head succeeds for empty values
Added [A].unfold(A => Option[(B, A)]): Stream[B]
Added PartialFunction[A, B].first[C]: PartialFunction[(A, C), (B, C)]
Added PartialFunction[A, B].second[C]: PartialFunction[(C, A), (C, B)]
Added Map[K, V].partitionEntriesBy(PartialFunction[(K, V), (C, W)]): (Map[K, V], Map[C, W])
Switched order of return values for Map[K, V].{partitionKeysBy, partitionValuesBy} so that unmapped/errors are on the left [Breaking Change]
Added PartialFunction[A, B].isUndefinedAt(A): Boolean
Added MultiMap[F, K, V].headTailOption: Option[(Map[K, V], MultiMap[F, K, V])]
Added MultiMap[F, K, V].sequence: F[Map[K, V]]
Merge branch 'master' into 2.9

Conflicts:
	core/src/main/scala/pimpathon/boolean.scala
	core/src/main/scala/pimpathon/function.scala
	core/src/main/scala/pimpathon/multimap.scala
	core/src/main/scala/pimpathon/option.scala