JBMAR-160: fixes for JDK 8

https://issues.jboss.org/browse/JBMAR-160
I would get an error running this test alone:
```
testExternalizableWithFollowingObjects(org.jboss.test.marshalling.SimpleMarshallerTests)  Time elapsed: 1 sec  <<< FAILURE!
java.io.EOFException
	at org.jboss.marshalling.river.BlockUnmarshaller.readUnsignedByte(BlockUnmarshaller.java:261)
	at org.jboss.marshalling.river.BlockUnmarshaller.readInt(BlockUnmarshaller.java:296)
	at org.jboss.test.marshalling.SimpleMarshallerTests$TestExternalizableWithSerializableFields.readExternal(SimpleMarshallerTests.java:2643)
	at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1414)
	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:275)
	at org.jboss.marshalling.river.BlockUnmarshaller.readToEndBlockData(BlockUnmarshaller.java:120)
	at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1415)
	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:275)
	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:208)
	at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:41)
	at org.jboss.test.marshalling.SimpleMarshallerTests$66.runRead(SimpleMarshallerTests.java:2672)
	at org.jboss.test.marshalling.TestBase.runReadWriteTest(TestBase.java:116)
	at org.jboss.test.marshalling.SimpleMarshallerTests.testExternalizableWithFollowingObjects(SimpleMarshallerTests.java:2657)
Caused by: an exception which occurred:
	in object of type org.jboss.test.marshalling.SimpleMarshallerTests$TestExternalizableWithSerializableFields
	in object of type org.jboss.test.marshalling.SimpleMarshallerTests$TestExternalizableWithSerializableFields
```
It is very weird seeing an unbalanced readExternal/writeExternal. How does it actually work? Maybe we can delegate the test for EOF closer to that logic?