Base class for native overlays.
Overhaul native fields.

This has various things to pave the way for more native overlay types and features. Key changes:
- NativeTextField is now an interface and inherits from NativeOverlay, which will permit more code
  re-use amongst all the native overlays for a given platform.
- Native field implementations now use the text value and finishedEditing signal directly from
  Field (and Field.Native, which is now a simple accessor class).
- The Field's _nativeField member is no longer set in the constructor and may be null until the
  first validation. This reduces waste.
Introducing ImageOverlay.

This isn't all that useful by itself, but the plan is to use this to implement Menu without all
the hacky clipping etc.