fix regexp problem #141
Use correct extension when compiling .js.coffee files

Some very common web frameworks like Rails use double extensions for
files that are precompiled. CoffeeScript source can have an extension
.js.coffee. The assumption is that the compiler writes out a file
which leaves out the last extension. Coffee-mode before would not work
well with this naming, because it would write a file with double
extension .js.js, assuming that extensions need to be switched.

This change looks at the buffer's file name, and if it already has a
.js extension after dropping the .coffee extension, then it does the
right thing and doesn't add one.
Add unit tests

I add unit tests for highlighting, syntax and commands.
Some tests are failed now. Failed tests are:
  - highlighting block comment
  - highlighting regexp literal
  - highlighting prototype access
  - highlighting local assignment without spaces
  - highlighting invalid instance variable

Pull request of #143 fixes block comment and regexp literal issue.
Merge pull request #156 from syohex/add-tests

Add unit tests
Merge pull request #143 from aaa707/master

fix regexp problem #141
Merge pull request #155 from febeling/master

Use correct extension when compiling .js.coffee files
Fix highlighting local assignment without spaces
Update test

Remove invalid instance variable '@123' test because other major
modes highlight such invalid variable.

Add prototype access tests

Remove needless comments
Merge pull request #158 from syohex/update-test

Update test
Merge pull request #157 from syohex/fix-local-assignment-without-spaces

Fix highlighting local assignment without spaces
add block-strings tests
Add assignment test for dollar sign
add regexp literal test
Fix highlighting regexp literal

Original code highlights regexp wrong if another '/' is existed in same line,
such as:

   emit = emit.replace /hubot/ig, "<b>#{robot.name}</b>"

Original code treats `/hubot/ig, "<b>#{robot.name}</` as regexp literal.
Because it uses greedy matching.
Fill block comment paragraphs correctly

Makes `fill-paragraph' work with block comments like:

    func = ->
       ###
       Lorem ipsum dolor sit amet, consectetur adipiscing elit.
       Donec ut tellus et felis vulputate tincidunt.
       ###

Before, `fill-paragraph' would move the "Lorem ..." up next
to the first "###", which destroys the comment formatting.
Add fill-paragraph test(#162)
Merge pull request #162 from denisw/master

Fill block comment paragraphs correctly
Merge pull request #161 from defunkt/fix-regexp-literal

Fix highlighting regexp literal
Propertize content of regexp as 'symbol'(#163)

Original code, coffee-mode.el propertize it as 'word'.
This cause hung up problem #163.
Merge pull request #164 from defunkt/fix-hungup

Propertize content of regexp as 'symbol'(#163)