fix error signal detection in SourceInputStream

empty byte arrays are massively overloaded with special meaning
based on both length and object identity. error signals were being
accepted as close/eof signals based on length alone and exiting
handling before being tested for being an error signal.

this patch fixes this in two disjoint ways:
- isErrorSignal logic runs before isCloseSignal logic
- isCloseSignal logic now excludes error signals based on identity
set noCreationFrames to false by default

it is the better setting by far and was left in the confusing
double-negative state by default for legacy reasons.
clearer exception handling + consistent closing
clean up pom; use latest jar-pom
slightly more helpful error stack traces

it still doesn't give the remote stack trace, but at least the
stack includes the thread trying to read from the source input
stream instead of random internal stuff.
handle bad remote mesh uuids/searches et al

a while ago, StreamSource was changed to throw an exception during
construction (least of two evils) when no requested mesh nodes are
found. StreamTarget's proxy stream source was not handling that
possible exception and was instead still attempting to check for
that condition manually. The exception was handled in a less useful
way by one of the fail safe handlers, so this restores the desired
behavior.

in particular, SourceInputStream does not seem to handle unexpected,
early session completion in a clean manner. While that is somewhat
its own problem, this issue was causing endless waits for blocking
reads.
handle unexpected session closure in StreamSource