Prevent duplicate glue paths

When RuntimeOptionsFactory builds RuntimeOptions if the target class is a member of a class hierarchy contained in one package the glue path with have multiple entries for the containing package.  This will then cause a "duplicate step definition" error during duplicated scans of the glue path (see #622).

This pull request aims to eliminate duplicate glue paths by changing the type of RuntimeOptions.glue from a list to a set.  This will enforce uniqueness, always.

The main change is RuntimeOptions.glue.  The remaining changes are to update the signature of  Backend.loadGlue() to accept a set (instead of a list) of glue paths.