Implement SmartCase matcher anyway

It requires some refactorings.  There are many duplicates yet.
Reduce duplicates in SmartCaseMatcher implementation

by improving RegexpMatcher's API.  Now it has a function to get a flag
for regexp instead of a flag itself.
Update README for SmartCase matcher
Describe more about SmartCase matcher
Merge pull request #191 from rhysd/add/matchers/smart-case

Added 'SmartCase' matcher to default matchers