Fix-up usage of path type's coming into action_mapper.

Still unused by mapper, but I think now the client is using these consistently. Define a data structure with defined constants for these - unused currently but at least documents what I am thinking with these.
Adjustments for simplification of input and input_extra path types in previous commit.

Turns out legacy LWR servers are going to make a distinction between input and input_extra (which just eliminated). Hack for now is to upload everything as an 'extra input'. Really both LWR upload methods are deprecated to some degree in lieu of a generic upload method that should now work properly.
Fix location of version file in previous path_type commits.
Tighten up path_mapper.py logic.

Rework methods so that path_type stuff doesn't need to leak out to Galaxy (galaxy runner picks the right method of new 3, doesn't need to specify path_type). Add unit tests for path mapper.
More path_type handling fixes.
Tweak ActionMapper for extension.

Rename type attribute ({regex|prefix|glob}) to match_type to distinguish from path_types (implementing shortly). Rework doctest to allow more testing.
More bug fixes for path_type renamings.
Allow modifing path mapping based on path_types.

Each path element in config can contain a path_types attribuets that defaults to ('input,config,workdir,tool,output,output_workdir'). Only if the path matches and the path type is in that list will path action be considered matched.
Add staging test case for tool files.
Add test case for staging input dataset with nested extra files.
Allow staging arbitrary (non-input, non-config, non-tool) files...

File mappers by default won't match to these but if path_types includes "unstructure" or is set to "*any*" then such matches will be used.

The unstructured file mappers can include depth attribute on these matches - the default of "0" just stages the file itself, setting depth equal to "1" will stage the whole directory containing the file (though only the matching path will be rewritten in the job inputs), a depth of "2" will cause the whole parent directory of the file's directory to be staged, etc.... This depth feature should be useful when staging implicit index files used by various bioinformatics tools.

Updated the PathMapper and ClientJobDescription so that Galaxy should be able to be instrumented build and pass along these files during tool evaluation when write_parameters is false - though only this default path rewriting variant has been implemented and tested so far.

Additionally, LWR server side changes have been made to support this feature and unit and integration tests are included.