use number2XX to convert safely number value from interface{}

use type assertion directly is dangerous, it will be panic when use *ewmh.ShowingDesktopReq* now.

the *xpop.ChangePorperty* need *data* with uint type,  *NewClientMessage* assume it *data* with int type, and there are all use interface{} to pass *data*.   so compiled ok then run panic.

It can also be use *reflect* package to reduce the code, but I think simply use an type switch is enough.