Don't start a session on read if it's known to be empty

If an app only reads/checks the session there's no need to start a
session to know that the read/checked session value is empty.

Probably the most common use case this addresses is having

    <= $this->Session->flash() ?>

In a layout file. If it's the only thing referring to the session, it shouldn't
itself be starting a session.

Fixes #1981