Session modifications can now be preserved when a forward occurs.

By now, if forward is called, session modifications  get lost because a new dispatch is invoked, that create e new context.
This could be seen as a design choice but i think it's a bit tricky because leave no other way to communicate between forwarded calls than params.

My pull allow a context to be passed as parameter to dispatch. Session can be extracted from this context and given to the newly created one.

Probably there could be also other elements of the old context that should be preserved... vars, for example get lost too. But vars are more difficult to be transferred and probably is right they remains just for a single request.