Rename lib to something lowercase

* `diff` was taken by the diffString lib.
* The convention is that a function with an uppercase name is a constructor.
Changed to using camelcase

* This seems to the convention for JS code.
* I just changed a couple of vars.  You can change the rest, if you like :)
Avoid repeating spaces getting code
Make special fns for marking up diffs
Remove unused code
Make build_word_index use reduce rather than iter
Should spaceholders be swapped in after diff?
Chain lookups without fear of undefined keys
Make build_word_index local
Make diff use diff obj w old_words and new_words
Move part of diff() into connectUnchangedWords()
Change comments to say what code seems to be doing
Remove duplication of forward + backward chaining
Make diff() local
Why is there a special case for length 0?
Abstract tokenisation to separate fn
Use custom word fns to make code more self-explanatory
word.exists now words if no word found at all
Make chainMatchingWords a forEach

* Makes it slightly easier to follow
Merge pull request #1 from maryrosecook/master

Code review