INT-2120:RemoteFileTemplate - Phase III

JIRA: https://jira.spring.io/browse/INT-3205

* add SftpSessionFactoryResolver, DefaultSessionFactoryResolver, SftpSessionFactoryResolver
* add constructor in RemoteFileTemplate that take SessionFactoryResolver as parameter
* add test
It isn't good, because one thread extracts session from the message and modify the class variable, it becomes visible for another thread. You don't follow here with `stateless` principle. Such a behaviour isn't desired for shared components, like `RemoteFileTemplate`. 
You have to propagate this local session to that `execute` method, but don't mutate the component state. 
I can guess that we can have `this.sessionFactory`, if `this.resolver` returns `null`, but I need to see entire picture of this premise...
Will take a look tomorrow closer.