Added the command "windowlist-by-class".

I started working on something to "switch between all windows of the same class", in other words, I wanted to use the command ```windowlist```, but listing only the windows of the class "Firefox" for example.

For that I did:

 * Added ```prompt``` parameter to the ```select-window-from-menu``` function.
 * Created generic function ```sort-windows-by-number``` and ```sort-windows-by-class```.
 * For each generic function, I implemented two method: one taking a ```group``` and the other taking a list of ```window``` (named window-list).
 * The "old" function ```sort-windows``` (which took a group as parameter) is now implement in term of these methods.
 * Added the ability to specify a list of window for the command windowlist
 * I then added the command ```windowlist-by-class``` because I could :smile: 

Now, it's really easy to do what I wanted in the first place, but my code for that part is "tighly" coupled with my stumpwm's config, so I didn't added it in the stumpwm's code.

What do you think?
rather than making window-list and optional argument, could you wrap it in a let binding please?