Selendroid support and adb.js rewrite

[Selendroid](http://github.com/DominikDary/selendroid) is a selenium server that runs via Android's [Instrumentation](http://developer.android.com/reference/android/app/Instrumentation.html) framework. This pull request incorporates it into Appium and makes it as easy to run as Appium's own UiAutomator-based framework. Simply pull this code, run `./reset.sh --selendroid`, and put 'selendroid' as the `device` in your desiredCapabilities.

The main reasons to use Selendroid instead of regular Appium technology are if:

1. You need to automate devices with Android < 4.1
2. You need webview automation (say for hybrid apps)

Selendroid requires building a special server specifically for your app and installing it on the device. This process is handled invisibly by the code in this pull request.

I also cleaned up, refactored, and organized adb.js to handle Selendroid and to make it prettier all around.