Create Session Extraction engines

Essentially they are classes that implement
the thenable interface.
Integrate Engines with Session and cleanup code
Add timeout for XDomain session extraction
Refactor Session