Factor out the netlink code to the `onionmasq` crate
- The
onion-tunnel
crate included some hacky code to add a Netlink passthrough route before opening a TCP socket. - This wasn't required on Android (and indeed would fail), since we use the JNI protect() function for that instead.
- Therefore, this commit moves it to the
onionmasq
Linux application crate instead, shifting some dependencies and logic out of the Android builds. - This involved extending the
OnionTunnelArtiTcpProvider
to take aprotect
function that also includes aSocketAddr
.