Custom File.extname method which returns the filename if it is an extension

As discussed in #1249, this PR replaces `File.extname(filename)` by a `FileBlob.extension(filename)` method which returns the full filename when it is an extension (for example with `.cproject`).

I use this method only in two places in `language.rb` for the moment. Is there any other place where I should use it instead of `File.extname(filename)`?

The Travis build fails because of [this test](https://github.com/github/linguist/blob/master/test/test_language.rb#L252):
```ruby
assert_equal [], Language.find_by_filename('.rb')
```
I don't understand this test... Don't we want a `.rb` file to be detected as Ruby?
Should I just remove it?
Stylistic thing here but I'd drop the `()`:

`extension = FileBlob.new(name).extension`