Added bth_get_valid_moves; tests for bth_get_valid_moves

I've implemented bth_get_valid_moves() using some pretty clever bitwise hacks
suggested by Cătălin. I've also added test coverage for bth_get_valid_moves().

I've added the option to also print a mask (could be used to display valid
moves) to bth_print_board().