epcap: cleanup, make the functions static
epcap: cleanup, use a bitset to hold options

These options were int's initialized to either 0 or 1.

From the pcap_set_rfmon man page:

    If rfmon is non-zero, monitor mode will be set, otherwise it will
    not be set.

For pcap_open_live(), the man page doesn't specify what the value of
promisc (the 3rd arg) should be. Probably any non-zero value is true but
EPCAP_OPT_PROMISC happens to be 1, imitating the old behaviour.
sniff: remove hard coded interface
test: add a test for sniffing a packet

Simple test for retrieving a packet. Note, there is a timing issue here.
Even though the port has been started, epcap is not monitoring the
interface yet. If the test does a TCP connection immediately with a
timeout of 100, epcap does not see the SYN.

Increasing the timeout to 2000 gives epcap enough time to being
monitoring the interface.

This test brings up two possible issues with epcap:

1. should epcap send a message to the process when it is ready?

2. Should the message sent back from epcap include an identifier?

    {packet, ID, DataLinkType, Time, Length, Packet}

Where ID is the pid of the gen_server (or it could be the port() or the
OS pid).