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?
Can you revise the docstring to read something more like:
```"Lists windows sorted by their respective classes, see @xref{windowlist} for more information"```

I know its the same information in a different order but it makes the documentation stand on its own a little better.  (the previous wording requires that you know what windowlist does and how it behaves).