Make options object and move diff color parsing

- Moved options normalization out of the diff method to reduce coupling.
- Made an options object internal to .diff() to avoid having a variable
  for every option.
Add grayscale option

- Add a new option 'grayscale' to convert the diff canvas to grayscale
  prior to applying the diff color.

Change courtey of @gregwhitworth.