Get rid of the close checks since we cannot reliably close the session anyway.

Conflicts:
	actionpack/lib/action_dispatch/middleware/session/abstract_store.rb
no need for bang bang :bomb:
fix method visibility
Use Set#subtract and Set#merge for keeping track of used / unused keys
again, use Set#subtract
mutations can't be done without the consent of our proxy object.  This
is one benefit of choosing composition over inheritance.
rename @used to something a bit more meaningful
mutations on the underlying hash should also mutate the discard set
simplify sweep now that discard and flashes are in sync
Remove unused ivars left from close checks

These ivars were missed in d142572567 when close checks were removed
make sure the superclass matches so load order does not matter
Store FlashHashes in the session as plain hashes rather than custom objects with unstable class names and instance variables.

Refactor FlashHash to take values for its ivars in the constructor, to pretty up FlashHash.from_session_value.

Remove stale comment on FlashHash: it is no longer Marshaled in the session so we can change its implementation.

Remove blank lines I introduced in controller/test_case.rb.

Unit tests for FlashHash#to_session_value.

Put in a compatibility layer to accept FlashHash serializations from Rails 3.0+.

Test that Rails 3.2 session flashes are correctly converted to the new format.

Remove code path for processing Rails 3.0 FlashHashes since they can no longer deserialize.

Fix session['flash'] deletion condition: it will never be empty?, it will either be nil or a hash with 'discard' and 'flashes' keys.

Conflicts:
	actionpack/lib/action_controller/test_case.rb
Remove nodoc from FlashHash #[]= [ci skip]
Code cleanup for ActionDispatch::Flash#call

The nested `if` was replaced by using `presence` which takes account for
the given hash when it is `nil` or when it is empty. The `else` was
removed because what it was doing was to assign to `env[KEY]` the
value it already had.
Fixing build broken by this change

c43ca06ca091fc09e2c86bb051ac92b648f12b64
Convert FlashHash in a Hash with indifferent access
Stringify the incoming hash in FlashHash

Stringify the incoming as well to handle incoming symbol keys from
marshalled sessions
Fixed broken flash tests

Conflicts:
	actionpack/test/controller/flash_test.rb
Missed FlashHash#replace
Remove test that depends on future functionality