Pixel drawing optimization

- Pixel rectangles no longer added to the canvas if they're outside of
the screen boundaries. The boundaries are currently hardcoded; they need
to be changed when the view state is changed.
- MainPage is now ready to handle changes in view state.