timob-12816: clean up and improve image view

https://jira.appcelerator.org/browse/TIMOB-12816
In this PR,
1. Use TiDownloadManager 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. Implement TiLoadImageManager which uses an unbounded pool to fetch and decode bitmaps.
3. Use both memory cache and disk cache.
4. Don't pre-scale the images in our code. Let native Android take care of scaling.
5. Download and decode bitmaps in the background thread so it won't block the UI.
For FR, please run the test case in JIRA to see the performance improvement for remote images in tableview and run KS->ImageView for a sanity check. Please also test https://jira.appcelerator.org/browse/TIMOB-10358, https://jira.appcelerator.org/browse/TIMOB-11640, https://jira.appcelerator.org/browse/TIMOB-4814 and https://jira.appcelerator.org/browse/TIMOB-3887.