THREE.Path.toShapes: independence of shape and hole specification order.

### Problem

THREE.Path.toShapes assumes that shapes and holes are specified in a specific order: holes either immediately before or after the shapes they belong to.
Unfortunately not all font files satisfy this condition (e.g. "optimer" bold, the percentage character "%", as can be typed into http://threejs.org/examples/#webgl_geometry_text).
This problem has also been mentioned in Issue #3386 by @xxdaggerxx .

### Solution

All holes (i.e. their first coordinate) are checked against all shapes whether they are inside that shape.
If this allows an unambiguous assignment of holes to shapes then and only then this assignment is taken instead of the specification order.