Add SFTP and other little changes

Request to pull two separate little changes:

- implement an `elasticluster sftp` command, patterned after `elasticluster ssh`
- use Python's stdlib abstract class enforcement for `Abstract*` classes.

I'm sending this as a pull request as the code is untested yet.