Support for adding and retrieving arbitrary data

This feature branch adds a generic data storage for app specific statistics and data. It can be used to:

* store "achements" or "badges" for users
* count the number of things done or found *inside* a task (as opposed to the tasks themselves)
* calculate averges or sums of user actions of any sort over any combination of users, apps and tasks

It lets an app associate data (either a json object, or a plain float) with a combination of (user_id, app_id, task_id, key), where any of these (apart from key) can be NULL, and where key is a plain string. Furthermore, user_id can only be set to the current user, if it isn't NULL.

The app can then query on any of these properties and either get a list of associated values, or sum and avg (in the case of plain float values).