XD-2044 Add SFTP source module

- Add module options and config
- Add tests
http://stackoverflow.com/questions/726652/creating-a-logical-exclusive-or-operator-in-java . I didn't know this. Apparently ^ works for this case:    return StringUtils.hasText(password) ^ (StringUtils.hasText(privateKey) && StringUtils.hasText(passPhrase));