metrics aren't used in lookup_hash
add recalculate_lookup_hash method
simplify remove_test_name
add failing test for inputs/params not updating lookup_hash
add observers to trigger lookup_hash to be recalculated
set_test_name is no longer needed so just delegate to test_name
only need to observe _new_value
handle delete catch-22 for recalculating lookup_hash
calling (re)calculate_lookup_hash too early might cause exceptions
observer create and value_id instead of _new_value

_new_value worked but only because it's set in create; it worked by
coincidence.
fix PerLaneTophat.t creating duplicate AlignerIndex

This test was creating a duplicate AlignerIndex (after having defined
one) but the duplicate was not caught because the lookup_hash wasn't
correct.
set_test_name is no longer needed
retire set_test_name

CHANGELOG: Genome::SoftwareResult's lookup_hash is automatically updated now so
set_test_name has been removed.
homogenize param and input classes

Homogenize param and input classes in preparation to extract base class.
extract common base between params and inputs
break circular dependency

There's a dependency between SoftwareResult and its Param, Input, etc.
but adding PIBase made Input unusable.
have to define value_obj on subclasses

When value_obj was defined on the abstract base class value_class_name
was not being saved.
deduplicate Genome::SoftwareResult Param and Input