move cursor with mouse

added last_block_in_view_ and first_block_in_view_ so I could do a fast
iteration over the visible blocks.

Only works within the confines of the text.