Return path if selected

If, during the DefaultLeagcyOpener#open execution, we get to the point
where the user selects a path, we will now return that path if we fail
to open it. This will give IJ1 a chance to open the selected path,
instead of forcing them to select a new path with no message indicated.
IJ1Helper: add open direct method

Added a helper method that constructs an IJ 1.x Opener and uses it to
open a provided path. This is useful when we want to bypass a
javassisted method signature.
Open failed paths via IJ 1.x

If we get a String back from our LegacyOpener, we will now attempt to
open it directly via IJ 1.x. Ideally we would return a value that makes
sense or update an argument, but this is not possible for the "open"
command due to the case logic in the ij Commands class.
Merge branch 'avoid-duplicate-dialogs'

When running the "open" command, by returning null we were causing IJ 1.x to
open a dialog - even if the user had already selected a target in an IJ2
dialog.

By returning the path that was selected in the case of a failed IJ2 open, we
can now have the appropriate IJ1 behavior (attempting to open the path selected
in IJ2).

Closes #43