select/update template while creating OS

- Moved `download_template` function to base class as it is now used by different modules
- added new test `test_update_os_template` and made necessary changes in `_configure_os` function