Fix vector of strings for Java

It appears that reading vectors of strings in broken in Java.

This PR fixes an issue where the generated code assumes that the offsets for a String in a vector are from the root object when they are actually relative to the current offset.

I've updated the Java tests and the `monsterdata_test.bin` file to include a vector of strings for testing.

There appears to be a remaining issue which causes vectors of strings built using Java to be reversed. We could modify `addOffset` in `FlatBufferBuilder` to adjust the writing location when we are in the process of building a vector but I'm not sure if that is the right solution. I'm honestly not even sure if `addOffset` is the right API to be use when building a vector of strings.