Legends: Widows and orphans problem. Issue #94

The idea is that each legend item, i.e. a heading
introduces a sub list which's height is then measured
and put into a sub list height map with the indexes
being the keys and the heights the values.

So, for example:
Say
maxHeight = 50
and
 * Heading 1 (height 12)
   * Class 1 (height 10)
   * Class 2 (height 10)
 * Heading 2 (height 12)
   * Class 3 (height 10)
   * Class 4 (height 10)
   * Class 5 (height 10)

subHeights = {
    0: 32 (=12+10+10)
    1: 42 (=12+10+10+10)
}

The code then goes through and calculates
subHeights[0] + subHeights[1] = 74
first and pushes the legend onto the next column
because 74 > maxHeight = 50

This is not perfect, but I have difficulty verbalising
why. However, it works for our simple cases so far.
Might need some more testing because I think there are
some corner cases that this doesn't cover.

Also, made sure correct indentation is used.

Conflicts:

	src/main/java/org/mapfish/print/config/layout/LegendsBlock.java