Allow setImg() to resize image to canvas

Also fixed call to clearRect; it was clearing a rect width x width instead of width x height
replacing the "cover" param of setImg with an "options" param containing a "stretch" attribute

Changed the name from "cover" to "stretch". In my eyes it better shows
that the image can lose its ratio.
Hack to try and fix the anti-aliasing issue

DrawingBoard.Board.fill tries to fill an area with the selected stroke color. The problem
is that drawn lines are anti-aliased, causing the lines not to be of a unique, plain color.
When "fill" iterates on the pixels composing the area to fill, it will stop when finding
a pixel of a different color; but this pixel is part of the anti-aliasing gradient, not
the actual line.

This anti-aliasing cannot be disabled.

One possible way of solving the problem would be to draw line at pixel level, using putImageData
but it would be a real performance killer.

The hack proposed here is, instead of stopping iterating pixels to early and leaving part
of the antialiasing gradient, to make one more step at the end.

This causes the filled area to be at most 1 pixel too big, but solves the original problem
most of the time. Note that this hack WILL erase the border of the filled area if that
border is only a 1-pixel-wide line.
the fill hack is now an option
woopsy - the fill hack is *activated* by default
Fixes npm error "Invalid version"

npm requires version to follow semantic versioning as described here :
http://semver.org/ (npm uses node-semver to check versions).
Although 1.3.3.7 is fun and all, it is incompatible with semantic
versioning. I could have replaced 1.3.3.7 with 1.3.3-7, which would
have been ok regarding semver, but I prefered to use the latest tag.
Updating dev dependencies

* add bower dependency
* add grunt-cli dependency
* updated versions of grunt and grunt-* to current versions
Fixing the path to jquery.min.js

jquery.min.js, if installed through bower, is now located in bower_components/jquery/dist/
Integration of simple-undo to handle undo/redo history, and fix for issue #29

Issue #29 : "When a background image is set and you undo the very first thing
you've done the entire background image is removed and you're left with
a transparent background."

The previous implementation of the undo/redo history was a bit messy about the
initial state. This was causing some strange behaviors like in issue #29, or
when reseting the board, or when the maximum size of history (30) was
reached.

Specifically, issue #29 was also caused by a sequential call to setImg and to
getImg in DrawingBoard.Board.resetBackground. setImg sets the new image
asynchronously while getImg gets the current state. This commit modifies
setImg to accept a callback as a second parameter, called only when the
image is actually set.