##### SUMMARY
As a nicety to the user, `ansible-galaxy collection` should check certain properties of the `collection_name` argument, and provide helpful suggestions about expected format.

##### ISSUE TYPE
- Feature Idea

##### COMPONENT NAME
lib/ansible/galaxy/collection.py

##### ADDITIONAL INFORMATION
When getting this message, it's not clear to the user what they should do differently:

```yaml
$ ansible-galaxy collection install chrismeyersfsu_tower_modules -p alan -vvv
ansible-galaxy 2.9.0.dev0
  config file = None
  configured module search path = ['/Users/alancoding/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/alancoding/Documents/repos/ansible/lib/ansible
  executable location = /Users/alancoding/.virtualenvs/ansible3/bin/ansible-galaxy
  python version = 3.6.5 (default, Apr 25 2018, 14:23:58) [GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.1)]
No config file found; using defaults
Opened /Users/alancoding/.ansible_galaxy
 [WARNING]: The specified collections path '/Users/alancoding/Documents/repos/jlaska-ansible-playbooks/alan' is not part of the configured Ansible collections paths
'/Users/alancoding/.ansible/collections:/usr/share/ansible/collections'. The installed collection won't be picked up in an Ansible run.

Found installed collection chrismeyersfsu.tower_modules:0.0.1 at '/Users/alancoding/Documents/repos/jlaska-ansible-playbooks/alan/ansible_collections/chrismeyersfsu/tower_modules'
Processing requirement collection 'chrismeyersfsu_tower_modules'
ERROR! Unexpected Exception, this is probably a bug: not enough values to unpack (expected 2, got 1)
the full traceback was:

Traceback (most recent call last):
  File "/Users/alancoding/Documents/repos/ansible/bin/ansible-galaxy", line 111, in <module>
    exit_code = cli.run()
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/cli/galaxy.py", line 269, in run
    context.CLIARGS['func']()
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/cli/galaxy.py", line 617, in execute_install
    no_deps, force, force_deps)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/galaxy/collection.py", line 450, in install_collections
    force, force_deps, no_deps)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/galaxy/collection.py", line 831, in _build_dependency_map
    validate_certs, (force or force_deps))
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/galaxy/collection.py", line 898, in _get_collection_info
    parent=parent)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/galaxy/collection.py", line 296, in from_name
    namespace, name = collection.split('.', 1)
ValueError: not enough values to unpack (expected 2, got 1)
```

Instead of `ValueError`, it would be better to give text like

> Improperly formatted collection name argument. Collection name must be of the format "username.collection_name", like "chrismeyersfsu.tower_modules"

if self.skip:
            display.display("Skipping '%s' as it is already installed" % to_text(self))
            return
        
        collection_path = os.path.join(path, self.namespace, self.name)
        b_collection_path = to_bytes(collection_path, errors='surrogate_or_strict')
        display.display("Installing '%s:%s' to '%s'" % (to_text(self), self.latest_version, collection_path))
        if self.b_path is None:
            download_url = self._galaxy_info['download_url']
            artifact_hash = self._galaxy_info['artifact']['sha256']
            self.b_path = _download_file(download_url, b_temp_path, artifact_hash, self._validate_certs)
        if os.path.exists(b_collection_path):
            shutil.rmtree(b_collection_path)
        os.makedirs(b_collection_path)
        with tarfile.open(self.b_path, mode='r') as collection_tar:
            files_member_obj = collection_tar.getmember('FILES.json')
            with _tarfile_extract(collection_tar, files_member_obj) as files_obj:
                files = json.loads(to_text(files_obj.read(), errors='surrogate_or_strict'))
            _extract_tar_file(collection_tar, 'MANIFEST.json', b_collection_path, b_temp_path)
            _extract_tar_file(collection_tar, 'FILES.json', b_collection_path, b_temp_path)
            for file_info in files['files']:
                file_name = file_info['name']
                if file_name == '.':
                    continue
                if file_info['ftype'] == 'file':
                    _extract_tar_file(collection_tar, file_name, b_collection_path, b_temp_path,
                                      expected_hash=file_info['chksum_sha256'])
                else:
                    os.makedirs(os.path.join(b_collection_path, to_bytes(file_name, errors='surrogate_or_strict')))
    def set_latest_version(self):