Enabling/disabling of navigation buttons depending on state.

Added listeners and logic to enable/disable the navigation
buttons depending on whether there are previous/next images.
Added comment about navigation button focusing code.
Added interface to obtain image counts and current index.
Changed `ViewerPanel` to hold its own list of images.

This will force changes to the images to be handled via
specific interfaces (which are not yet implemented) to ensure
that the internal state stays consistent.
(Specifically, calling the listeners which expect to be called
when the images are changed.)