Clean the code.

* Do not use JS for submitting the category selection form
* Split getInfo() to functions (1 function for 1 widget)
* Use 1 query for getting creation and modification date instead of 2
* Fix category cleaning regexp, use _empty_ instead of __empty__ so collision will be impossible
* Check if the request is coming from Special:Search to enable categories and sorting
* Do not generalize (desc,asc) array
* Use assoc arrays for filtering in some places
* Code style, also for some of the old code