Check that polarization norm does not exceed 1

In Beam::setPolarization this is done, but in IBeamScan::setPolarization is not.

Preferable way is to merge implementations via inheritance (see #649 (closed))

Currently user can set arbitrary polarization state for scans and get non-physical result. E.g. if in Examples/specular/BasicPolarizedReflectometry.py set

    results = [
        simulate(sample, R3(0, +100000, 0), R3(0, +1, 0), "$++$"),
        simulate(sample, R3(0, -1, 0), R3(0, -1, 0), "$--$"),
    ]

then the output is

image