Interval classification - First part : categorize refactoring

First part of the work I've made in order to include interval calssification based on SE styles in OrbisGIS. There are two main things in this PR. 

First, I've reworked the Categorize API and behaviour. It now relies on a Map<RealLiteral, ToType> rather than on different lists. It eases and clarifies the management of the "Lowest Threshold" -> "value" mapping. Moreover, the Categorize API is now closer to the Map API. In fact, it is basically a SortedMap with a special behaviour regarding its lowest value.

The second part of this PR is the beginning of the work made in the Legend library. It includes the implementation of the three wrapper for Categorize instances. They work the same way the recode wrappers do : they can contain a Categorize or a Literal, and Literals are transformed automatically in Categorize when the API of the wrapper is used to insert new key-value pairs.

It was not possible to put these two changes in different PR as there was a failing test  present until the end of this commit set.

This PR should not break anything as it does not change much things in the rendering strategies or in the UI. I let you decide if it is OK to merge it or not, considering that it is the first of the three parts already proposer in my last, closed, PR.