Add timer source
This adds a new timer source.
Also, different sources need different kinds of callbacks, which makes it impossible to use one source struct for all source kinds, so I made one source struct for each source kind.
Due to an influx of spam, we have had to impose restrictions on new accounts. Please see this wiki page for instructions on how to get full permissions. Sorry for the inconvenience.
This adds a new timer source.
Also, different sources need different kinds of callbacks, which makes it impossible to use one source struct for all source kinds, so I made one source struct for each source kind.