Potentially printing provenance more than once in LoadErrors

As discovered in MR !129 (merged), it is possible that by way of resolving option expressions, we end up prepending provenance to errors which already have provenance, resulting in errors such as:

element.bst [line 11 column 4]: element.bst [line 11 column 4]: Oh crap something went wrong here

This is due to how _options/optionpool.py prepends provenance to error messages. As described in this comment, that prepending is intended to add provenance only when a LoadError is raised from self.evaluate(), the _yaml.composite() line should be moved out of the try / except block so as to avoid this.

However, it's not entirely that simple, making this change will also cause the error message introduced by MR !129 (merged) to regress and lack provenance information, so both of these must be fixed together.