Allow session to handle calls and casts the same way as gen_server

This makes a session to be standard gen_server augmented with
expiration and message routing.
Allow to process not delivered messages in terminate