updated .cabal
merge new cereal branch, version bump
update readme
add IllegalFunction exception
add upper bound on base