Cofree is now trampolined to allow more stack safety

Cofree can SOE when not using an F[_] that is lazy when unfolding large data structures.  I added a test case to show this when going from a large list to Cofree[Option,A].  Using a trampolined functor, now all unfolding is stack safe along with mapping/binding etc.