Support static word list and parent/child

Again changes are flagged with '#krc:'. The main changes are: potential regex change from "\w+" to "\w+[.]?\w*" so that sequences like 'table.' and 'table.col' are found. Static word lists (SQL keywords) are supported exactly as before, except that the word set are not constructed from document content, but rather loaded by code.

Parent/child sequences are broken into two chunks by the dot, the first chunk is potentially a key in the dictionary whose value is the possible children, e.g. column_list = dict[table_name].

The regex has been made a property of the Completer object so that each Completer instance may have it's own target sequence search criteria, one based on keywords only, another based on parent/child.

Other than this, the only changes are to allow the static word list and parent/child dictionaries to be cleanly changed on the fly.

The only bug I know about is that [Tab] does not properly release the popup list in the case of completing in a parent/child sequence.