Reworked handling of new API calls

- Use TargetApi instead of SuppressLint("NewApi")
- Refactored ApiLevelTooLowException
- Fixed delegate for getEmptyView (was setEmptyView before)