* don't run querys if not strictly required (e.g. query for chars from ajax context)
* prepare user globals and favorites so errors can be handled and don't destroy the template
this also allows for profiling of the affected queries
* add keys to items table to speed up querying for recipes in general and user completions in particular