Spectacle supports assigning a shortcut for resizing a window to fill the left or right half of a screen and for moving a window to another screen:

As does Slate:
bind left:ctrl;alt;cmd move screenOriginX;screenOriginY screenSizeX/2;screenSizeY
bind right:ctrl;alt;cmd move screenOriginX+screenSizeX/2;screenOriginY screenSizeX;screenSizeY
alias monitor-macbook 1280x800
alias monitor-dell 1440x900
bind up:ctrl;alt;cmd move screenOriginX;screenOriginY screenSizeX;screenSizeY ${monitor-macbook}
bind down:ctrl;alt;cmd move screenOriginX;screenOriginY screenSizeX;screenSizeY ${monitor-dell}
Amethyst also supports assigning a shortcut for moving a window to another space. throw-screen-2
(control-option-shift-e) moves a window to the second screen and throw-space-2
(control-option-shift-2) moves a window to the second space.