Added more tests for ScriptExecutor.

Summary
* Abstracted Session and ScriptEngine into interfaces.
* Created wrapper classes for Session and ScriptEngine.
* Updated ScriptExecutor to depend on interfaces not implementations.
* Created 4 unit tests for ScriptExecutor.

Notes
* Had to updated ScriptExecutorTests as they were not following contrib approach for tests. Hope there is no problem with that, but I did it despite the fact that they were already accepted, as we had specifically discussed this during the afternoon.