Improve PacketReader startup()

Instead of using the connectionID, we now use a new boolean
lastFeaturesParsed to mark when startup() is able to continue or when a
NoResponseException should be thrown.

Fixes the problem when the connectionId was set and the wait() would
timeout, resulting in startup() believing that everything was ok, while
in fact the features where not yet received (or parsed). SMACK-558.
Make PacketReader.resetParser() throw the exception

there is no need to catch it and disguise it.
Log connectionClosedOnError exceptions