Delimited text provider indexing implemented.

Efficiency improvements.

Adds capabilities
   SelectAtId
   CreateSpatialIndex

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: did try using QTextStream.pos to build a random access index -
this was incredibly slow.  Have found using line based index is
reasonably fast even on quite large (50+Mb) text files.
Merge resolved
Merge branch 'master' into delimited_text_indexing_implemented
Documentation fix
Merge pull request #582 from ccrook/delimited_text_indexing_implemented

Delimited text provider indexing efficiency improvements.
don't reload the whole browser model when the project home changes (fixes #7520)
allow credential requests from threads
oracle provider:
- make searching in meta data table default
- also list synonyms
- more progress messages
postgres provider:
- move available table detection to thread
- more progress messages
german translation update
Add rand and randf functions for generating random numbers
Small fixes to function help
Add regexp_substr function for returning matched part of string against regex
Add max and min functions
Add floor and ceil functions
Add abs function
Add trim function
Add a scale_linear function, for linear interpolation between and input domain and output range
Merge pull request #587 from nyalldawson/new_functions

New functions
sip does not like CORE_EXPORT and Q_OBJECT