Async notifications

See engine/lib/notification.php for a description of how to use the new API.

The major differences are
* queue is used to make notifications asynchronous
* OO rather than procedural
* more control over notifications - can set subject line, multiple language support

Before pulling in:
* update core plugins to use it

Also looking at
* throttling
* separate table for queue
* rewriting notifications plugin (possibly pull site notifications out of private messaging plugin)