BUG Fix Versioned stage not persisting in Session

This fixes the issue noted at https://github.com/silverstripe/silverstripe-cms/issues/962

The problem is that the VersionedRequestFilter was discarding the presented Session object when determining the persistent reading mode. Since there is no current Controller at this stage, the Session object would otherwise be inacessible, and attempts to use Session::set/get would create an (ultimately discarded) object saved into Session::$default_session.

This was followed up with a general cleanup of the RequestFilter classes and PHPDoc. VersionedRequestFilter and RequestProcessor now actually implement the RequestFilter interface.