Implement key-based navigation

Some notes:

- Navigation is done with previous/next navigation (keys: p/n). This more or less follows rows across the image, starting in the top left corner (the sidebar items have been adjusted to be in the same order). Navigation using cursor keys is not a trivial problem (in particular to ensure all boxes are attainable), and we agreed this was good enough for now;

- For users I thought it made more sense to move the bottom right and top left corners individually (rather than 'resize' the box), as that makes it easier to get the selection right. Bottom right uses shift + cursor keys, while top left uses Control + cursor keys. Might not be the best combination, but we thought we would do it this way and wait for user feedback;

- I added the key handling at the GraphicsView level. I think this definitely makes sense for the navigate/resize keys. Possibly zoom-to-selection (and delete) could be moved at the QMainWindow level, but I thought it fitted better there;

- I removed the numbered labels from the sidebar. The items are sorted on add to make prev/next navigation easy. To keep the labels as growing integers would require updating them all when new items are added. I assumed that once we had annotations these would replace the label anyway.

Available navigation:

p: Previous item
n: Next item
Cursor keys: Move current selection
Shift + Cursor keys: move bottom right corner(s) of current selection
Control + Cursor keys: move top left corner(s) of current selection
z: Zoom to current selection

Additional feature is that the view follows the selection (so pressing n/p - or selecting an item in the sidebar - will cause that box to come into view if it isn't)
To have previous/next navigation, I insert the items at the right position in the list - so expensive insertion, but cheap navigation. 

The problem of navigating a plane of 2d boxes which may have any dimensions, overlap, contain each other, etc. is not trivial. I just wanted to have a good-enough prev/next approach that will ensure that all the boxes get visited.

So what this does is divide the image in 20 rows of equal size. Whenever the user presses 'n', it will go to the next box within that row (or the first box in the next row). In each row, boxes are ordered by x-coordinate.

This could be improved in many ways - I just wanted something good enough for now to get initial user feedback.