Revert to expecting '.bst' on the command line to disambiguate elements and artifacts

Summary of changes:

  * _stream.py: Treat targets with `.bst` suffixes as elements and other
    targets as artifacts, and improve error reporting around this.

    Also use a new machine readable error string to denote when we fail
    to create a directory when creating a workspace.

  * _loader/loader.py: Remove handling of LoadErrorReason.LOADING_DIRECTORY

    This additional handling was only to suggest that maybe the user
    meant to specify "<directory_name>.bst" in the case a directory is
    encountered, but now we will bail out earlier if an element target
    is specified without a ".bst" suffix anyway.

    The only way to reach this error is to load a directory which itself
    already has a ".bst" suffix, in which case the additional suggestion
    is no longer useful.

  * tests/format/elementnames.py: Expect different error for target elements

  * tests/frontend/artifact_show.py: Removed test that is no longer relevant,
    it is now impossible to glob for both elements and artifacts with the
    same glob expression.

  * tests/frontend/show.py: Removed some parameters of the glob test which
    were expecting to get element results without specifying a ".bst" suffix

  * tests/frontend/workspace.py: Specify a newly added machine readable reason
    for the error of failing to create a directory while opening a workspace

  * tests/internals/loader.py: Trigger the LoadErrorReason.LOADING_DIRECTORY
    error by creating a directory named "element.bst", so that it gets by
    the initial element name suffix checks.

Fixes #1411
7 files changed