Added embed functions to Bifoldable, Bifunctor and Bitraverse 

This functions return a new BiX composed from a BiX and two Xs. For example using a `Bifunctor[F[_,_]]` , a `Functor[G[_]]` and a `Functor[H[_]]` it creates a `Bifunctor[F[G[_],H[_]]]`. I'm not sure if the name `embed` conveys this. Also added some tests for Bitraverse which test if the left and right projections of some embeddings are also Traverses. I'm not sure on how to test the same for Bifoldable and Bifunctor.