added validation mechanism to ComplexFaultSurface

This pr adds two new validations to the ComplexFaultSurface:

1) Checks that the surface is valid (for instance the surface is not twisted because edges have been inverted)
2) Surface complies with Aki & Richards convention (i.e. surface dips right of the strike direction)

New tests have been added and an existing test corrected (it was defining an intermediate edge shallower then top edge)

By parsing real models with these new validation mechanism I found that some models (Europe-SHARE, South-East Asia, South-America, and Alaska) define complex sources that violates the Aki & Richard convention. This create problems only when calculating the Rx distance, but GMPEs associated with such complex faults usually do not use such distance metric.

Tests are running here: https://ci.openquake.org/job/zdevel_oq-hazardlib/100/