robolectric testing

**UPDATE:** instead of moving our entire source (would be hell for merges and PRs I'd imagine), I modified the robolectric plugin to allow custom sourceSet specification, reliant on https://github.com/WhisperSystems/maven/pull/5. We can still go back to moving the source to match what Android expects by default if we'd prefer this and using the stock Robolectric plugin instead, but this is much more unobtrusive.

So this was a major pain in the ass because of Android's tools team not wanting to make life easy for testers. Unfortunately the robolectric plugin doesn't appear to support specifying test directories outside of the default android locations, so I moved our source folders to match what Android recommends project layouts look like.

This PR is up for commentary on if this is a good idea or not, it may be too painful to justify but this seems to really be the only way to have tests that are TravisCI-friendly and don't require us to have a device plugged in. 

The other option is I can submit a PR to the robolectric plugin and we can wait for that to get pulled upstream (and roll our own for the time being if we want this in quickly).