Solidified move generation logic. Added more testing scenarios.
Merging