Initial commit

(About 2 weekends of work)
Features in this commit:
- basic structure of editing canvas with gridlines and zoom
- temporary color selector
- 3 tools: pencil, fill, and line
Color Palette, HSV Picker

- Color sliders are now HSV; there is a display to the left which is not
functional yet.
- Users can store 8 different colors in the palette, located below the
picker.
- A few changes (?), which I can't remember since it's been like a
month.
New Tools: Rectangle, Ellipse, Dropper, Grab

- Ellipse is not perfect for some reason, will debug later.
- Added button that re-centers the image in case it goes offscreen.
(Dropper selects the color of a certain pixel. Grab moves the image
around the screen.)
Main Page is now a LayoutAwarePage

This should allow for easy adjustment of elements upon screen state
changes. However, I might have to convert everything to be children of a
canvas, so that might not work.
Rough image loading.

- png image loading from file. press the "save" icon to do it.
- discovery: the app lags a lot when handling mildly large images. At
100x100 px on my computer (Pentium dual-core processor, 4GB ram), it
takes about a second to load, and takes a long time to zoom and scroll.
Drawing is not too bad though. Possible solutions: put an arbitrary cap
on max image dimensions, or maybe there is a better way to re-draw the
rectangles on screen.
Rough image saving.

- saves image to file when you press the button.
- It appears that currently you cannot access the saved file with an
external program, for as long as chip stays open. It is accessible when
chip is closed. Might be possible to fix this, might not.
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.
Visual color picker now works

- The HSV-picker gradient to the left of the sliders now works in
conjunction with the sliders. When the selector is moved, the sliders
adjust, and vice versa.
- fixed a small bug in PixelDisplay
Color picker visual upgrades

- Saturation and Value sliders how have dynamically changing graphics
based on current HSV values. Sliders also have their own appropriate
custom style which doesn't get in the way of the colors.
- Color palette colors grow bigger when selected and smaller when
deselected, which is nicer than just having a colored border.
- minor other visual changes
UI color picker

- 3 new boxes below the normal palette change the color of the canvas
background, the tool panel background, and the pixel grid.
- Fixed bug with hsv sliders
- Some small changes, such as palette colors now start as white
DrawTool tweaks

- Re-organized DrawTool code. Made sensible tweaks to some tools, such
as recalculating lines when the pointer is dragged outside the grid.
- Made some pixel-art graphics to put oan tool buttons later.
- minor other tweaks, removed oval tool for now.
Added temporary key to .gitignore
Merge branch 'master' of https://github.com/patrickgh3/chip

Conflicts:
	.gitignore
Merge branch 'master' of https://github.com/patrickgh3/chip

Conflicts:
	.gitignore