sqlite3: speedup the SELECTs

The uniqueness of rows is maintained by first doing a select.
In case the item is not found, it's INSERTed.

This is done for files, refids, params and includes, data
that is not unique by itself, like cross-references for example.
In other words, you can have many memberdefs in one file,
but you can only have one cross-reference between two functions
since the reference location is unique.

So, when SELECTing files and refids, use the file name and refids
as primary key since that's the fastest way to do it.

Also 'OR REPLACE' not necessary in 'INSERT OR REPLACE'.

Signed-off-by: Adrian Negreanu <adrian.m.negreanu@intel.com>
util/patternMatch: break when pattern is found

Signed-off-by: Adrian Negreanu <adrian.m.negreanu@intel.com>
Merge pull request #127 from groleo/master

sqlite3: speedup the SELECTs