store Optional<T> in session cache en 2nd level cache to allow
non-existant (null) entries.
Conflicts:
	src/main/java/fr/mtlx/odm/OperationsImpl.java
	src/main/java/fr/mtlx/odm/spring/SpringOperationsImpl.java
	src/main/java/fr/mtlx/odm/spring/SpringSessionFactoryImpl.java
throw a ConversionException when then attributeType is not persistent
Cache layer rework
Conflicts:
	src/main/java/fr/mtlx/odm/OperationsImpl.java
	src/main/java/fr/mtlx/odm/SearchCriteriaImpl.java
	src/main/java/fr/mtlx/odm/SessionFactoryImpl.java
	src/main/java/fr/mtlx/odm/SessionImpl.java
	src/main/java/fr/mtlx/odm/cache/BaseCacheManager.java
	src/main/java/fr/mtlx/odm/filters/PropertyFilterBuilder.java
	src/main/java/fr/mtlx/odm/spring/SpringOperationsImpl.java
	src/main/java/fr/mtlx/odm/spring/SpringProxyFactory.java
	src/main/java/fr/mtlx/odm/spring/SpringSessionFactoryImpl.java
	src/test/java/fr/mtlx/odm/SessionFactory2.java