Better qualimap axes

Main change here is that the x axis for most qualimap plots is now determined automatically when run without an explicit parameter, instead of using a hard default. How this is decided varies on the type of data, typically `2 x median` value or something similar. This code is entirely self contained now, so much better than earlier attempts at doing this.

Second small change is the addition of `plot.close()` statements. This makes no difference when run on the command line, but when the function is imported into another script and used to generate a lot of plots it dramatically improves memory usage.
The `Exception1, Exception2` syntax is valid because it is interpreted as `Exception1, instance` where the instance contains the details of the error, such that one can do e.g. str(instance) of it (to a log, or to stdout).

My advice: use the `Exception1 as instance` construct, if that is what is intended. Otherwise `(Exception1, Exception2)`, where the tuple unambiguously shows what you intend.