Bug Description

When word suggestions and auto-complete are turned on, there is no way to disable word candidates for a particular word you want to type that might not be in the list.

For example: I want to type "Hello my friend how are you?"

When typing I get to: "Hello my friend" and the word candidate shows "friends" and no candidate for "friend". Pressing the spacebar causes "friends" to be inserted and there is no way to prevent this. Happens with a lot of other words as well as our word suggestions are not always what you'd want/expect.

I think we should have a small "x" button on the far right of the word ribbon that when pressed will clear the word candidates for the current words, which would allow the user to essentially disable the feature just for the current word.

Just thinking about this a bit in conjunction with the problem of adding words to the user dictionary; what if instead of offering a way to remove the word candidates we just always present the user's exact entry as the second item on the word ribbon, so it's always available for them to select and override the primary suggestion? We could then also use them selecting it as the trigger for adding a word to the dictionary, so only unknown words we have been told are correct get added.

Or on second thoughts maybe it'd be less confusing if the user's input was the first entry in the word ribbon (and maybe highlighted in some way), and then we use the second word in the ribbon as the primary candidate for auto completion?

[ Michael Sheldon ]
* Modify the build system so that presage databases are only updated
when manually requested, instead of during every compile.
* Add user input to the word ribbon as the first entry, allowing for
autocomplete suggestions to be overridden. Use the selection of that
entry as the cue to add words to the user spell check dictionary and
filter presage's predictions based on what words are in the spell
check dictionary. (LP: #1318808)
* Re-evaluate the state of autocaps when the user is deleting
characters and when the cursor position changes to the beginning of
a field (LP: #1312329)