adb: implement an interactive shell

as far as I can tell, this works as well as the official adb shell

usage is shown in adb_tests
a wrapper is shown in adb_functions
new file added, adb_shell. this is the actual code for the the console, which is made up of raw_input for input, and writing to stdout from within a thread
The error catching may seem messy, however it offers the same functionality as the official adb shell