HW5: First cut

First cut of HW5. Runs around 8 ms online (with BLOCK_SIZE_MAX &
GRID_SIZE_MAX set to 1,024)