Add a function to query the RSS bucket indirection mapping.

The RSS indirection table has 128 entries in it but typically
we only configure some subset of it - the mask exposing the
relevant bits are in rss_mask.

So there needs to be some way to directly expose the mapping
between the RSS indirection table entries and what RSS bucket
we're choosing.

So far it seems that the NIC indirection tables (on the Chelsio
and Intel parts) treat the indirection table as the low
seven bits of the calculated RSS hash and each entry in that table
is some receive queue that will eventually map to a CPU ID and
netisr context.

My igb(4) hacking creates one igb queue (up to 8) representing
each hash bucket that rss_mask exposes.  So, rss_mask would be
7 (ie, 8 possible entries) and they're currently assigned
round-robin (ie, we just mask off the lower bits of the hash
value -> bucket.)

Later on we may end up experimenting with different ways to
distribute and redistribute the indirection table -> bucket/queues,
(and maybe even bucket/queues -> CPU or CPU sets.)  Using this
function to do the mapping instead of guessing means we can
eventually support different mapping types.
Ensure we query the RSS layer for the indirection and CPU mappings.

Beforehand the igb(4) RSS queue, bucket and CPU layout would just "happen"
to coincide with what the RSS code was setting up.

This changeset:

* limits the number of queues to the number of RSS buckets
* queries the RSS layer for the indirection table -> bucket mapping;
* queries the RSS layer for the bucket/queue -> CPU mapping;
* handles the number of queues != number of buckets, and complains / copes
  (badly) without invalid accesses/configurations.