Move normal orientation calculation

This, in effect, turns the implementation into a scalar-type beamformer (i.e.
the orientation is already fixed when calculating the spatial filter, not
afterwards).
Modify normal orientation test

Because normal orientation is now enforced before and not after spatial filter
computation, the results aren't precisely smaller then for free orientation.
Clean up optimal orientation implementation