override rack session.id

* reads SID from session.options[:id]
* only loads the session if one needs to be created to provide a SID
remove unneeded test method

The persisted SID is loaded using the store's extract_session_id(), so
reading this from session.options[:id] is a better test of whether or
not session[:session_id] was properly set AND persisted to the next
request.
add test for session.destroy
use _session_id for SID storage in cookie session
remove test_setting_session_id_to_nil_is_respected