Adds Injection type-class

I couldn't find a way to get the compiler to convert a Bijection to an Injection as a last resort (I played a lot with the ordering of the implicits, but I think this project just really taxes the compiler and I think there are likely bugs in the resolution).

To get an Injection from a bijection, you need:

implicit val inj = Injection.fromBijection[List[Int], Vector[Int]]

for instance.