Make Java-Lang compatible with Java 6

- Configure the compiler to emit Java 6 bytecode (unfortunately this means that Java 7 features like the diamond operator can not be used)
- Add alternative code-paths for cases where the field names have changed betwee Java 6/7

This has been tested and all the unittest pass with Java 6, 7 and 8.
Add a more generic way for reading/writing (subset of) byte arrays from offsets.
Merge pull request #53 from cdman/offset_read_writes

Add a more generic way for reading/writing (subset of) byte arrays from offsets
Merge pull request #52 from cdman/java_6_compatibility

Make Java-Lang compatible with Java 6
Try to optimize StatefulProvider exclusive access check
HCOLL-267 fixed serialization issue with GenericEnumMarshaller
HCOLL-269 fixed issued where Map with value type of Set<String> throws NPE on map.entrySet() if populated with a Collections.EMPTY_SET, the bug was in the net.openhft.lang.io.serialization.impl.CollectionMarshaller