Fix spinner for multiple simultaneous validations

An element can have multiple validation events which will run
simultaneously. Each will put a spinner onto the element.

This code tracks starts and stops and makes spinner work correctly.
Add Saving spinner text and ...
Adjust dbjoin validation events
Improve several js files

Form and element adjusted to use improved spinner.
Autocomplete-bootstrap improved caching, implement predictive text,
reduced event handling
Form single field ajax validation moved to Element to prevent hung
spinners when tabbing rapidly causes simultaneous validations.

To Do:
1. Test CDD autocomplete.
2. Complete form.js to handle repeat group cloning correctly, and
provide same page validations and button enabling for tabbed forms.
3. Refactor calc, date, password to do manual validation calls
direct within element.
4. Refactor elements like date and dbjoin where (raw) field is hidden
and non-raw UI field is shown to user.