Performed switch to FSMD architecture

The new architecture is more straightforward, maintainable, easy to
expand and pipeline eventually. Tested and working.

- Added control FSM
- Added structural datapath based on previous components
- Added testbench