File transfer steps fixes

Various fixes in buildbot.steps.transfer module:

 * More informative error message when StringDownload step is configured with invalid 'mode'
 * Broke out common code in different steps into base class methods
 * Fix pylint error: E0203 (access-member-before-definition)
 * Somewhat improved unit test coverage