Added testbenches and modified components to be more generic
All components made generic. Bus widths reduced. Generic mapping is now explicit for each component