Improve some "standard" CMake Find modules by using macros

A few "FindXXX" modules are completely identical, or at least should be, because they do the exact same things, and it's not easy to keep all of them in sync.
I started modifying all of them, one by one, but after a lot of changes I was quite bored to have to redo all the changes in all the files, so I wrote those macros.
This makes adding a "basic" FindXXX file very easy, and also makes it ready for the "new" XXXConfig.cmake system, when packages will install one.

I'm not sure if a macro make sense though, what do you think?