macher_fuzzy should match shortest substring

Take this example directory structure:

```
./config/plugin/fugitive.vim
./config/plugin/indentLine.vim
./config/plugin/unite.vim
```

Now try to search for `unite` using the `fuzzy_matcher`
Matches are like this:

![screen shot 2014-10-05 at 1 38 40 am](https://cloud.githubusercontent.com/assets/223760/4518002/0ab9655c-4c6b-11e4-8d8a-bf34d765955b.png)

The regex generated here is: `u.\{-}n.\{-}i.\{-}t.\{-}e`

When I actually would expect:

![screen shot 2014-10-05 at 1 39 32 am](https://cloud.githubusercontent.com/assets/223760/4518004/275020ac-4c6b-11e4-9e51-5f6ab6888e3e.png)

The one I used here is: `u\(.\{-}u.\{-}n.\{-}i.\{-}t.\{-}e\)\@!.\{-}n\(.\{-}u.\{-}n.\{-}i.\{-}t.\{-}e\)\@!.\{-}i\(.\{-}u.\{-}n.\{-}i.\{-}t.\{-}e\)\@!.\{-}t\(.\{-}u.\{-}n.\{-}i.\{-}t.\{-}e\)\@!.\{-}e`

That uses negative lookaheads, I'm not sure how that would perform and also as far as I know regexes in lua do not support negative lookaheads.

@Shougo do you know how hard would it be to implement this on the fuzzy matcher?