Made module_local types take precedence over global types

Attempting to mix py::module_local and non-module_local classes results
in some unexpected/undesirable behaviour:

- if a class is registered non-local by some other module, a later
  attempt to register it locally fails.  It doesn't need to: it is
  perfectly acceptable for the local registration to simply override
  the external global registration.
- going the other way (i.e. module `A` registers a type `T` locally,
  then `B` registers the same type `T` globally) causes a more serious
  issue: `A.T`'s constructors no longer work because the `self` argument
  gets converted to a `B.T`, which then fails to resolve.

Changing the cast precedence to prefer local over global fixes this and
makes it work more consistently, regardless of module load order.
diff --git a/tests/local_bindings.h b/tests/local_bindings.h
index 0c53369..4c031fb 100644
--- a/tests/local_bindings.h
+++ b/tests/local_bindings.h
@@ -16,6 +16,10 @@
 using NonLocal2 = LocalBase<2>;
 /// Tests within-module, different-compilation-unit local definition conflict:
 using LocalExternal = LocalBase<3>;
+/// Mixed: registered local first, then global
+using MixedLocalGlobal = LocalBase<4>;
+/// Mixed: global first, then local (which fails)
+using MixedGlobalLocal = LocalBase<5>;
 
 // Simple bindings (used with the above):
 template <typename T, int Adjust, typename... Args>