Support for multiple file extension segments

This is a first stab at supporting multiple file extension segments. `FileBlob#extensions` will return an array of the materialized extensions, with the most specific one first.

```ruby
>> Linguist::FileBlob.new("app/views/things/index.html.erb").extensions
=> [".html.erb", ".erb"]
```

Right now it will return languages for the most specific extension with languages defined. In other words, if `.foo.bar` has languages defined, `.bar` will not match. Is that ok?

/cc https://github.com/github/linguist/pull/1729 @arfon @pchaigno