Added custom View support for Tabs

Like `IconTabProvider` there is now an option for a `TabViewProvider` with a `getTabView(int position)` method.

```java
public interface IconTabProvider {
    public int getPageIconResId(int position);
}
```
```java
public void notifyDataSetChanged() {
    tabsContainer.removeAllViews();
    tabCount = pager.getAdapter().getCount();
    for (int i = 0; i < tabCount; i++) {
        if (pager.getAdapter() instanceof IconTabProvider) {
            addIconTab(i, ((IconTabProvider) pager.getAdapter()).getPageIconResId(i));
         } else if (pager.getAdapter() instanceof TabViewProvider) {
            addTab(i, ((TabViewProvider) pager.getAdapter()).getTabView(i));
        } else {
            addTextTab(i, pager.getAdapter().getPageTitle(i).toString());
        }
    }
}
```