Altered the way names are discovered.

* It used to go through every Data element in the AST in a monadic fashion and putStrLn the function name, if it matched the criteria. For that, it used the everywhereMStaged function, borrowed from the HaRe project.

* Now I have implemented a staged variation of SYB.listify, from fixing old HaRe code for everythingStaged and comparing it to the original SYB.listify code. In short, the listify function takes a filter function as an argument (i.e., a -> Bool) and returns a representation of the Data element - and its sub-elements - as a list. The Staged variation, just as everywhereMStaged and everythingStaged do, serves the purpose of avoiding known potholes (e.g., postTcType placeholders), according to the 'Stage' that generated the AST.

* This implementation still prints all the found variables, so we can compare it with the previous one. However, we can now use the list from listifyStaged to further analyze the results in plain Haskell, instead of saving as to later parse the program's output with something like a bash script.
Cleaning up the last commit. It contained many functions leftover from trying to find how to do stuff.

* Removed unused functions;
* Cleaned up most of the code with hlint;
* Added comments to most functions.