SR: Automatically Update lookup_hash and Deduplicate Param/Input

It's probably easier to go through this commit-by-commit.  Note that merge commits are not super obvious but they have two parents, i.e. d4c0298 and b0c9558, and content besides message can be skipped.

```
*   b0c9558 (HEAD, nnutter/sr, sr) deduplicate Genome::SoftwareResult Param and Input
|\  
| * 98c8b27 have to define value_obj on subclasses
| | M   lib/perl/Genome/SoftwareResult/Input.pm
| | M   lib/perl/Genome/SoftwareResult/PIBase.pm
| | M   lib/perl/Genome/SoftwareResult/Param.pm
| * f0e8585 break circular dependency
| | M   lib/perl/Genome/SoftwareResult/PIBase.pm
| * dd236f8 extract common base between params and inputs
| | M   lib/perl/Genome/SoftwareResult/Input.pm
| | A   lib/perl/Genome/SoftwareResult/PIBase.pm
| | M   lib/perl/Genome/SoftwareResult/Param.pm
| * 6dbe3f6 homogenize param and input classes
|/  
|   M   lib/perl/Genome/SoftwareResult/Input.pm
|   M   lib/perl/Genome/SoftwareResult/Param.pm
*   d4c0298 retire set_test_name
|\  
| * 41bdf13 set_test_name is no longer needed
| | M   lib/perl/Genome/Db/Ensembl/AnnotationStructures.pm
| | M   lib/perl/Genome/Disk/Detail/Allocation/Purger.pm
| | M   lib/perl/Genome/Model/Tools/Htseq/Count-many.t
| | M   lib/perl/Genome/SoftwareResult.pm
| | M   lib/perl/Genome/SoftwareResult/Command/SetTestName.pm
| * 24a6cad fix PerLaneTophat.t creating duplicate AlignerIndex
| | M   lib/perl/Genome/InstrumentData/AlignmentResult/PerLaneTophat.t
| * 248aa40 observer create and value_id instead of _new_value
| | M   lib/perl/Genome/SoftwareResult.pm
| * 17890be calling (re)calculate_lookup_hash too early might cause exceptions
| | M   lib/perl/Genome/SoftwareResult.pm
| * fb097f7 handle delete catch-22 for recalculating lookup_hash
| | M   lib/perl/Genome/SoftwareResult.pm
| | M   lib/perl/Genome/SoftwareResult/Input.pm
| | M   lib/perl/Genome/SoftwareResult/Param.pm
| * 3ff6714 only need to observe _new_value
| | M   lib/perl/Genome/SoftwareResult.pm
| * 2e2ce8e set_test_name is no longer needed so just delegate to test_name
| | M   lib/perl/Genome/SoftwareResult.pm
| * 81dd12a add observers to trigger lookup_hash to be recalculated
| | M   lib/perl/Genome/SoftwareResult.pm
| * c0c49e3 add failing test for inputs/params not updating lookup_hash
|/  
|   A   lib/perl/Genome/SoftwareResult_lookup_hash.t
* 937f7bd simplify remove_test_name
| M     lib/perl/Genome/SoftwareResult.pm
* b9bc441 add recalculate_lookup_hash method
| M     lib/perl/Genome/SoftwareResult.pm
* a966c80 metrics aren't used in lookup_hash
| M     lib/perl/Genome/SoftwareResult.pm
```