Refactor EasyAdapter

* __Performance improvement__: `onSetListeners()` is now only called once when the `ItemViewHolder` is created. This introduces some breaking changes because the parameters of the `onSetListeners()` method change. 
* __`EasyAdapter` class refactoring__: Part of the code has been moved out to `EasyAdapterUtil` in preparation for the future implementation of `EasyRecyclerAdapter` that will enable support for the new `RecyclerView`
*  __Constrain `EasyAdapter` constructor parameter__: If the `temViewHolderClass` is not an extension of `ItemViewHolder` you will get an error when compiling instead of at run time.