Hostname use

Added:
- *_try_assigned_hostname* fn which assigns generated *hostname* if conditions are met,
- unittests for *_try_assigned_hostname* fn,
- functional tests,
- migrations merged,
- signal *device_hostname_assigning*.

@ar4s @quamilek 
```
"""Mock function replacing Asset.generate_hostname. 
It requires setting Asset.mocked_hostnames.
```