Allow passing in a mark to use for listen sockets.

The mark is applied to the DNS and DHCP listen sockets.  Client
sockets used to talk to DNS forwarders were already marked.
Both bound and wildcard sockets are marked, even though we only
use bound sockets.

The mark is passed in at startup instead of on a per-interface
basis because there is only one DHCP socket and it is created
before any interfaces are added.

Bug: 37778642
Test: "adb shell ss -tneiopan" shows expected mark
Change-Id: I3b99aa5b77963745715d52065b2119f54df17e8b
4 files changed