Removes the source with the given ID from the default main context.
You must use destroy for sources added to a non-default main context.
It is a programmer error to attempt to remove a non-existent source.
More specifically: source IDs can be reissued after a source has been destroyed and therefore it is never valid to use this function with a
source ID which may have already been removed. An example is when scheduling an idle to run in another thread with
idle may already have run and been removed by the time this function is called on its (now invalid) source ID. This source ID may have been
reissued, leading to the operation being performed against the wrong source.
the ID of the source to remove.
For historical reasons, this function always returns true