Add Settings api, and xpathCompression setting for Android

Same as last, time, you need to use my fork of wd.js to run the tests...
guys there's no way we can get out of async just by keeping everything in this one method. either way it's likely that the action represented by "setting" a setting is going to be async (as it is in this case). we're in the land of callbacks whether we want to be or not. the main advantage of the EventEmitter model here is code cleanliness and division of knowledge/responsibility. device-settings.js doesn't need to know what kind of device a setting is for--a particular device can implement a listener, or multiple devices can implement different listeners, or we can implement one listener for all devices in device.js

@0x1mason I'm not sure what you mean by "get/set is preferable for handling extra duties caused by property changes". are you suggesting we implement a getter/setter method for properties on a device? they'll still be async and we'll be saddled with the async complexity regardless.