enforce type constraint on interface properties
add types to base variables too
use consistent syntax
enforce canonical output format
simplify associated mac addresses retrieval

dot1dTpFdbAddress table seems to contains only mac address format
conversion from decimal to hexadecimal, there not much interest to
retrieving it, as the actual mapping to port numbers occurs in
dot1dTpFdbPort.

As a side note, a few addresses mapped in dot1dTpFdbPort don't appears
in dot1dTpFdbAddress, explaining the few additional addresses gathered
now.
O is a valid interface index
simplification: drop now useless snmp values
more complex tests
drop vlan-specific SNMP sessions

This method is only used to retrieve mac addresses associated with a
port, without any hint about wether they correspond to devices directly
connected to the port itself, or indirectly connected through another
networking device. If those mac addresses are only visible in a
specific VLAN, and not from default one, they are likely to be
associated for routing only.

Moreover, this method missed information available through the initial
session, and was relying on community, meaning it was specific to SNMP
v1 or v2.
fix expected output
drop indirect call logic

The only remaining manufacturer-specific code is related to specific
nortel harware, and none of our currently available samples demonstrate
any usefulness
drop code unused anymore
merge Tools::Hardware and Tools::Hardware::Generic

No need to use two different namespaces now.
turn into private functions

Those functions are now only used locally.
add additional hardware types
update expected result
update expected output
merge in hardware.t
more internal consistency
enforce lowercase mac addresses