Sync with Ion 2.4 & 2.5 Android Ion

Refactored the code to support both pre-2.5 and 2.5 Android Ion. 

Implements http://teampulse.telerik.com/view#item/271692
I suggest you to extract tmpRoot as separate function - `getTmpRoot(appIdentifier)`. This way the return type will be `IFuture<void>`