[CORE] net: Simplify and optimize software bridge

Currently, we use linked-list based mac table and spin lock
for protecting mac table which is sub-optimal.

This patch makes mac table array based and we use rwlock for
protecting mac table so that we mostly take read lock on mac
table in bridge_rx_handler() there-by considerably reducing
lock contention in bridge_rx_handler().

Signed-off-by: Anup Patel <anup@brainfault.org>