ISPN-3792 Add metadata parameter to putForExternalRead

I'd like to be able to set metadata on cache entries that I use putForExternalRead on. I am using invalidation caches for caching data I load from a data store, so I can't use the standard put methods or risk invalidation after invalidation across my cluster. I have consider a Flags approach, however the putForExternalRead implementation does more than just flags; it also suspends the transaction.

The lack of metadata capability for putForExternalRead sticks out as different from the other methods. I've implemented metadata methods to match the other existing ones. I haven't put javadocs against them yet, but I will. I'd like to know if you like / approve the approach.