Adds char range, clean code and refactorings

* adds a range on chars: `range('a', 'z')` and change the asciidoc and
  javadoc accordingly
* make the `reversed` augmentation a proper java method tho refactor `Predefined.reversed_range`,
* fix a bug regarding comparisons that assumed `compareTo` to be only
  {-1, 0, 1} which is not the case for chars
* adds a `defaultValue` method and a new constructor using it to
  refactor `Predefined.range(to)`