Minor redux / bugfix of Signals.
* Signals are now more generic and can be parameterized with slots of any callable type.
* Support for ScopedConnection was dropped.
* Signals now support move-construction and move-assignment
* Slots can be moved to a Signal now (before, they could only be copied).
* SignalD is provided for Signals using Delegate as their slot type.
  Essentially, writing:
      Signal< Delegate< void() > > mySignal;
  Is the same as writing:
      SignalD< void() > mySignal;
* Signals now have operator += and -=, allowing you to connect and disconnect slots with a more concise syntax, like so:
      Callable fn = ...;
      mySignal += fn;
      mySignal -= fn;
* Because Signals are now parameterized with the Slot type rather than the signature type,
  Signal< Slot > can be called with any combination of arguments that Slot can.
* Signal now has .isEmpty() and .size().

Fixed a bug in Delegate where comparing two Delegates with == or != caused a compile error.