DotRocket: return double instead of float
DotRocket: silence a warning

While we're at it, rename a variable that was a victim of copypasta.
DotRocket: thread-safe callback-handling

Using gcroot instead should be thread-safe, by creating a native
wrapper-object that holds a reference, and using the data-channel
already present.
DotRocket: mark wrapper-functions as static
DotRocket: put DeviceReference in the anonymous namespace
DotRocket: remove pointless cast
DotRocket: remove pointless forward-decls
player: fix gcc warnings
editor: move invalidation to helpers

Make it look like Qt to keep things simpler
editor: use socket_poll-helper
editor: create a helper to set statusbar-text
editor: drop custom window events
editor: wrap up current-value dirtying
editor: wrap and merge row/track changed events
editor: clean up input
editor: clean up statusbar-updates
editor: fix member initialization order
editor: fix int/size_t mismatch

As the editor currently only builds on 32-bit Windows, this is not
a real-world problem, as int and size_t are the same size.

However, this is about to change...
editor: port to Qt
editor: only invalidate tracks if edit-track changed