Update length if binary property is stream

In the Filesystem implementation, the `length` was being set to the value of the property, which was a Stream. This PR sets stats the stream and sets the length based on that.

I'm not sure how this works in Doctrine DBAL / Jackalope, but I guess the `->length` property should always be an integer.
binary reads are delayed. the `value` field contains the length in this case, and we explicitly read the binary when its requested in getValue() ... getBinary(). i would do the same here, storing the length of the binary in the property along with the other properties to avoid the file read when reading the node - as we do with the jackalope-doctrine-dbal implementation