[base] CustomDataMgr: change semantics of setCustomData<T>()
[base] CustomDataMgr: change semantics of setCustomData<T>()

we now only allow the templated setCustomData to assocate custom data
and it only creates an instance of T if there is not yet custom data
associated with the passed key.

We had to do this constraint due to dynamic error page generators in x0,
which might pass some handlers/functions twice, such as the accesslog
function, to associate a request-logger object with this current
request.
Now, if the request has already associated something with it by that
plugin, it will not create a new association-object for it.

We dropped the raw-pointer setCustomData(key, value) function for safety
reasons.

christianparpart/x0,christianparpart/x0,xzero/x0,christianparpart/x0,christianparpart/x0,xzero/x0,xzero/x0,christianparpart/x0,xzero/x0,xzero/x0,christianparpart/x0,christianparpart/x0,xzero/x0