implement shift and rotate instructions

TODO: Testing
move immediate and relative addressing out of exec
lots more tests, including rewriting ADC tests