Additional PersistField instances

Hi!

I wanted to use my type which is a wrapper around `Either` with persistent, but found out that there is no PersistField instance for that. And that's why I made those changes.

There is a number of ways to implement those, but I think the instances in my branch are fairly reasonable.

There are some types for which I haven't implemented the instances (like IntMap, Sequence, etc), because they can be easily converted to lists. I wonder if it makes sense to add them?

Thanks
-- Dan