callback_event() can handle different data types.

Can merge arrays if all handlers return an array, glues
strings just like now and returns the original value
if there is only one handler for the event.

In short, doesn't automatically cast returned values to
string.

Closes issue #364

git-svn-id: http://textpattern.googlecode.com/svn/development/4.x@5229 2fea6a4d-a838-0410-917b-93a53c48e9d2