Add IGNORE_CONSTRAINTS and IGNORE_ALL_CONSTRAINTS
Rearrange options
Add diagnostic messages
Simplify self-update code
Improve error messages