future: Make promising take Promise[A] => B.

By creating a temporary Promising object we don't break source
compatibility to previous promising.

Come on Scala, gimme some type param groups so this boilerplate can
die..
future: Move Promising out of the package object.
Promising: Make it a value class.
Promising: Make apply @inline.
Promising: Inline value class & inline promise loaner.
Merge pull request #7 from beamly/make-promising-take-a-Promise-to-B-fn

future: Make promising take Promise[A] => B.