Delimited text provider indexing efficiency improvements.

Efficiency improvements.

Adds capabilities
   SelectAtId
   CreateSpatialIndex
Also adds QFileWatcher to monitor potential changes to file after it has been loaded.

This uses line number as an index.  Allows jumping to a line number
without interpreting all intermediate records, so much more efficient.
Also retains the current record in a buffer, so successive requests for
the same record do not require rereading the file.

With index available have also added indexing of subsets and optional
creation of spatial index.

Note 1: (For the record) I did try using QTextStream.pos to build a random 
access index - this was unbelievably slow.  I have found using line based index is
reasonably fast even on quite large (50+Mb) text files.

Note: I suspect this may not be justified for 2.0, as it does make significant
internal changes to the provider.  Not everyone wants to load >50Mb text files, 
and for files up to a few Mb I think this indexing is a luxury rather than a necessity..

I have put a separate pull request (583) for one minor item that does need applying for 2.0 
which I noticed while building this.