timob-12816: clean up and improve image view

https://jira.appcelerator.org/browse/TIMOB-12816
In this PR,
1. Try to use TiResponseCache which uses an unbounded pool to cache the remote images in the SD card instead of AsyncTask because AsyncTask uses a bounded pool and it may cause RejectedExecutionException.
2. Use both memory cache and disk cache.
3. Don't pre-scale the images in our code. Let native Android take care of scaling.
4. Download and decode bitmaps in the background thread so it won't block the UI.