politely informs user that mobile commands don't work in selenium

adds extra test to ensure it's the mobile: error message that's getting sent
refactor instruments and add appium-internal flake support
This commit constitutes a pretty big refactor of the instruments
process handler. It also introduces a server flag, '--backend-retries',
with a default of '3', which specifies how many times Appium will retry
launching instruments before giving up and saying that it crashed or
timed out. This works in concert with launchTimeout, of course.

I think this refactor also fixes some longstanding callback reasoning
errors and maybe some other bugs.

It might also introduce some bugs of its own though :-)
remove retry support from appium test code
since it is now handled in appium itself
clean up instruments pathfinding
remove safari launcher as strategy for safari + sim
Catch SyntaxError exception and log nice error message
Merge pull request #1650 from jlipps/instruments-rearch

Instruments rearch
Merge pull request #1645 from rockbot/master

politely informs user that mobile commands don't work in selenium
Merge pull request #1634 from grz0/master

Catch SyntaxError exception and log nice error message
allow built-in apps to be automated by temporarily moving them
allow setting ios sdk version in tests with IOS_VERSION env var
support automation of safari on ios7
allow safari on ipad to launch correctly as well
changes md5 module for more efficient md5hashing
Small typo 'sessoin' for 'session'
Merge pull request #1652 from elgalu/patch-1

Small typo 'sessoin' for 'session'
Merge pull request #1651 from rockbot/master

changes md5 module for more efficient md5hashing
Fix spacing
Markdown-related improvements to README.md ruby examples
Merge pull request #1653 from elgalu/patch-2

Markdown-related improvements to README.md ruby examples