Fix pattern matching. Also add an option to search only as literal and not treat pattern as regexp

Currently the pattern matching doesn't work properly many times.
E.g. if I search test.* (pt test.*) in platinum searcher code itself, it will produce 0 results. However, if I add ignorecase option (-i) with test.* (pt -i test.*), then it produces many results. 
The issue is that it doesn't search it as a regular expression and instead as a normal string if -i is not specified. This is fixed in this pull request.
Also, ag has an option to treat the pattern as a literal (ag uses -Q or --literal for this). This is much faster than searching for reg exp. I've added this as well.