Fix imaginary results, refactor coding
Fix imaginary results, refactor coding

1. Flattened local functions.
2. Fixed imaginary results based on consulting *Mathematica*'s `Normalize` function and the coding of `List.projectiveDistMinScal` by replacing the `CSNumber.sqrt(CSNumber.add(CSNumber.mult(line.value[0], line.value[0]), CSNumber.mult(line.value[1], line.value[1])))` code pattern with the `List.abs(List.turnIntoCSList([line.value[0], line.value[1], CSNumber.zero]))` code pattern.
3. Choose higher-level code patterns over performance, replacing the `List.turnIntoCSList([line.value[0], line.value[1], CSNumber.zero])` code pattern with the `List.cross(List.cross(List.linfty, line), List.linfty)` code pattern in four places.
4. Used the `var func = List.func;` code pattern to make the code portion more readable.

montaga/CindyJS,CindyJS/CindyJS,wursterje/CindyJS,montaga/CindyJS,kortenkamp/CindyJS,kranich/CindyJS,montaga/CindyJS,CindyJS/CindyJS,kortenkamp/CindyJS,montaga/CindyJS,gagern/CindyJS,kranich/CindyJS,strobelm/CindyJS,wursterje/CindyJS,strobelm/CindyJS,kranich/CindyJS,CindyJS/CindyJS,kortenkamp/CindyJS,kranich/CindyJS,strobelm/CindyJS,gagern/CindyJS,strobelm/CindyJS,wursterje/CindyJS,kortenkamp/CindyJS,montaga/CindyJS,gagern/CindyJS,wursterje/CindyJS,CindyJS/CindyJS,CindyJS/CindyJS,gagern/CindyJS,kranich/CindyJS,CindyJS/CindyJS,kranich/CindyJS,kortenkamp/CindyJS,gagern/CindyJS,strobelm/CindyJS,strobelm/CindyJS,wursterje/CindyJS,kortenkamp/CindyJS