rollback and commit should not throw if not connected

Throwing an exception when there is no established connection
doesn't comply with the way filters are handled by FilterChain.
Refactor peek function

Rewinding is no longer possible (the 'first' parameter is ignored).
This is due to a known ActiveMQ-CPP bug (as of v3.8.2) causing an
access violation when recreating a cms::QueueBrowser too often.