Add a Callout / Leader dimension type

Description

KiCad should support callout / leader annotations, which are basically a type of dimension object.

These have (at least) two control points: The origin, and the endpoint where the text appears.

The origin should have an optional arrow, and the endpoint should have some adjustable offset from the text that is joined by an extension line:

a
  _
 |\
   \
    \
     \
      b---c TEXT

Where a is the origin point, b is the "end" control point, and c is the "text" control point.

Ideally the gap between the origin a and the start of the arrow is configurable, as is the margin between the control point c and the start of the text field.

KiCad Version

Application: Pcbnew

Version: (5.99.0-3244-g459cc326e), debug build

Libraries:
	wxWidgets 3.0.4
	libcurl/7.68.0 OpenSSL/1.1.1f zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3

Platform: Linux 5.4.0-45-generic x86_64, 64 bit, Little endian, wxGTK

Build Info:
	Date: Sep  8 2020 10:42:25
	wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.24
	Boost: 1.71.0
	OCE: 6.9.1
	Curl: 7.68.0
	ngspice: 31
	Compiler: GCC 9.3.0 with C++ ABI 1013

Build settings:
	KICAD_SCRIPTING=ON
	KICAD_SCRIPTING_MODULES=ON
	KICAD_SCRIPTING_PYTHON3=ON
	KICAD_SCRIPTING_WXPYTHON=ON
	KICAD_SCRIPTING_WXPYTHON_PHOENIX=ON
	KICAD_SCRIPTING_ACTION_MENU=ON
	BUILD_GITHUB_PLUGIN=ON
	KICAD_USE_OCE=ON
	KICAD_SPICE=ON
	KICAD_STDLIB_DEBUG=OFF
	KICAD_STDLIB_LIGHT_DEBUG=OFF
	KICAD_SANITIZE=ON