Implements the Magnitude Scaling Relation of Bonilla et al., (1984)

This PR implements a magnitude scaling relation (MSR) defined by Bonilla et al., 1984. This MSR is useful for older PSHA calculations, and can be found in models such as that of the Philippines (Tenhaus et al., 1990).

The MSR is a magnitude-length scaling relation, rather than the area scaling currently supported by OpenQuake. Currently this is not directly compatible, so we opt to define multiple implementations, each assuming a different rupture aspect ratio. This is a temporary solution to enable implementation of this particular MSR. An overhaul of the scaling relations to support the possibility of defining length, width and displacement scaling will be needed in the future.
I agree that this is a very inelegant approach. As I said in the comment accompanying the PR, this is hopefully only a temporary approach. The problem is that magnitude length scaling relations such as this one are in very common use in PSHA and it is, I believe, the biggest shortcoming of the hazardlib that we cannot yet support them cleanly. As I said, early next year it will be necessary to overhaul the scaling relations entirely. For the more general comment regarding the sets of classes, I actually think this approach is logical when the models may need to be considered as different branches in an epistemic uncertainty analysis. So where we have a large amount of subclassing in places like particular GSIMs, this would appear to me to be the most theoretically robust approach.