Allow configuring a socket mark for DNS packets.

This allows dnsmasq to send DNS queries on a non-default network
(e.g., the DUN APN). We add support for a mark instead of using
existing code to bind DNS servers to interfaces because:

1. Marks are more flexible, and we use them elsewhere.
2. The existing code to bind DNS servers to interfaces causes
   the DNS socket to be bound to a constant port, which exposes
   us to a Kaminsky attack.

Bug: 16357676
Change-Id: I8933b6de198a92c2aaf0291931ace8966ddba275
3 files changed