Disable button on submit

The first commit changes the JS such that it tests for data-loading-text directly. This reduces API complexity at the cost of removing the possibility to get the pure bootstrap behaviour that doesn't check for invalid fields. I cannot imagine a use case where the pure bootstrap behaviour is better, so I took the opportunity to reduce complexity.

The other commits should be self-explanatory.

I only tested a small random sample of the changes in the oscar dashboard.

(This was #1543 before.)