Fast linechart

Ok, I made some changes I hope I didn't mess everything up. PathCompat is now used instead of Path when possible to draw lines and smooth lines. Path is only used when we need an area chart, maybe I can write a custom fill algorithm to use with PathCompat but for now I did it using Path.

There is a new method called `setCompressorThreshold(int)` in `LineChartRenderer`. We use this method to establish the maximum number of points to render PER LINE without applying any compression. Let's say we set it to 500, so if any series has up to 500 points, everything will be renderer as always, but, if any series has 501 or more points then a compression method will be applied in order to reduce the number of points to render. This is pretty common and is called data grouping.

We can specify different compression methods and even create new ones easily. The compressor class must implement the `DataCompressor` interface. It takes all the data to render and it must return a new `XYDataset` with the compressed data. I implemented just 2 compressors, `DownsamplingCompressor` and `MinMaxAverageCompressor` that looks weird sometimes.

Also, the `PreviewLineChartRenderer` now generates a `Bitmap` of the data which is regenerated only when the data changes so it doesn't have to render a huge amount of data, it slowed down things a lot on large datasets.

Finally the new render method takes advantage of multiple cores so it's faster to have multiple series with a big number of points instead of a single serie with a huge amount of points.

Feel free to modify or remove anything you think is wrong, I'm far from an expert programmer.