DATAJPA-523 - Make Specification implement Serializable.

Specifications now implements Serializable to be able to transfer Specifications across systems boundaries. Introduced special Seralizable Specification types for composed and negated Specifications.

Note that currently only Hibernate and EclipseLink expression structures implement Serializable - OpenJPA's don't.