Add RestService that contains all REST service calls

I underestimated the brainf* of Android when I started writing this app.

AsyncTask don't mix well with configuration changes (like orientation)
in Activities. In Android, activity gets recreated on configuration chagne.
This means that all AsyncTask will get nuked. So, if you are uploading or
downloading a file, you are screwed. I guess the problems can be mitigated
with caching the download and supporting resume/range on server.

In general, it would be nice that these AsyncTasks don't die. The way
to do this in Android is to create Loaders or Services. Loaders are really
for the usecase of loading specific data. Service doesn't die over config
changes.

Note that RestService is a local service. It uses the bound service (IBinder)
mechanism. Which is really a convoluted way of accessing the singleton instance of
RestService (but services are dynamically started/shutdown and all that).

On a side note, we don't use IntentService because
a) IntentService relies on Intent and startService() which requires packaging
and depackaging stuff into Intent.
b) IntentService does only one intent at a time. So, http parallel connections
won't work.