Minor refactoring of the ItemProvider provider.

The provider now takes an actual item rather than the corresponding
PushData when asking the API to create a new instance or update an
existing. This way the user is not forced to deal with the 'PushData'
concept, but only the 'Item' concept.
Fixed StackOverflowError when creating a new item.
Switched to integer based id notation (instead of long).
Refactored the item filtering to behave in a more flexibel manner.

You can now assign differnt filter parameters, like sort order, offset and limit
much more dynamically. Previous you had one shot: the constructor.
Fixed callback life cycle issues.

The callback order now is the following:

  1.  If the executed request result has a session object, then
      report the new session data through the session listener.

  2.1 If the executed request result has an error object, then
      report the error details through the error listener.

  2.2 Else (if no error), report the result item back through
      the result listener.
Extended the SDK to also support the User (and User.Profile) API area.
Added convenience method for adding unverified String values to items.

There will be a pre-verification on the value, as of empty strings being replaced
by null.
Fixed a bug in the create flow of the TextValue object.
Centralized date parsing functionality in the Utils class.
Fixed session reset related bug in the Podio facade.
Fixed filtered items bug.

The filter was never reset properly when a request was accepted. This resulted
in old filter parameters being still active in new filter requests.
Enabled possibility to get values for fields directly from the item.

Previously the caller had to first get the field from the item and then get the
desired value from the field. This fix enables the caller to request a field value
directly from the item, knowing the field external_id and the index of the value
to get.