Fix the ar724x PCI config space register read.

It was doing incorrect things with masks.  This was fixed in the
AR71xx codebase but it wasn't yet fixed in the AR724x code.

This ended up having config space reads return larger/incorrect values
in some situations.

Tested:

* AR7240

TODO:

* test ar7241, AR7242, and AR934x.
Mechanically switch ixv(4) to if_inc_counter().
Fix the AR724x PCIe glue to correctly probe the BAR on AR7240 devices.

There's a bug in the AR7240 PCIe hardware where a correct BAR will end
up having the device disappear.

It turns out that for the device address it should be all 0's.

However, this meant that the PCI probe code would try writing 0xffffffff
in to see how big the window was, read back 0x0, and think the window
was 32 bits.  It then ended up calculating a resource size of 0 bytes,
failed to find anything via an rman call, and this would fail to attach.

I have quite absolutely no idea how in the various planes of existence
this particular bit of code and how it worked with the PCI bus code
ever worked.  But, well, it did.

Tested:

* Atheros AP93 - AR7240 + AR9280 reference board
Convert to if_get_counter().
Provide ixgb_get_counter().
Convert to if_inc_counter() last remnantes of bare access to struct ifnet
counters.
Merged from r183296.

  Add missing library dependencies.
Finally, convert counters in struct ifnet to counter(9).

Sponsored by:	Netflix
Sponsored by:	Nginx, Inc.
Remove duplicate prog.
Merge remote-tracking branch 'freebsd/master' into hardened/current/master