Fixes #2641 - Add type_changed check to JS to allow form to refresh when provisioning a discovered host
(cherry picked from commit c5e90813c8cb1e031ae43dd6f00b359119958a19)
Fixes #2642 - Display build button if host type has changed
(cherry picked from commit 4cdd3291c6756d966ae52b7dc6cdc6a9fdf855fb)
Fixes #2643 - Check for operatingsystem before orchestrating TFTP
(cherry picked from commit d2e50bbbf7d84fde6d846f5a821cf7e2c28fbfb3)
Fixes #2644 - Refactor Host find_by_name to use several ways to find a
host, and refactor my_hosts scope to Host::Base, allowing us to remove
unnecessary permissions check from find_by_name
(cherry picked from commit 5b5af86ecd6f6b147aeb4dd4ceadd890dc9f2699)
fixes #2343 - override default settings with custom values

- added check for nil before attribute 'default' is loaded from yaml
- removed logic that tried to set 'value' attr to nil when it was equal to 'default';
  it didn't behave predictably as 'default' can be assigned after 'value'
(cherry picked from commit 911d3f5c8f68d7a6daf89296b92af37d546ce95a)
fixes #2660 - settings, improve tests and fixes

- added string settings type
- fixed tests previously commented out due to CI failures
- more tests for core settings functionality
- parsing of string values enhanced and extracted to a separate method
- setting value to nil when it equals default is back
- create! is now prefered method for creating settings as it raises exceptions on invalid states
- setting takes string as default type when parsing values from user input
(cherry picked from commit 8da68b88093f497491a20f337d4e658addad7432)
fixes #2334 - location matcher doesn't match on smart parameters
(cherry picked from commit c7f527779d80e1cc78e1f3b02a6ba7bfc081a95d)