Replace ternary with &&
Use Special Case 'Unspecified' object to represent missing Location parts in keys.
Get rid of nil check when extracting simple method name.
Remove unnecessary else clause.
Extract precondition assertion for readability.
Clarify naming of location parameters.
Ensure location params are always cloned.
Replace if/else with fetch
An alternative refactoring that doesn't use a Special Case object.
Merge remote-tracking branch 'avdi/alternative-location-refactor' into avdi-alternative-location-refactor

By Avdi Grimm
* avdi/alternative-location-refactor:
  An alternative refactoring that doesn't use a Special Case object.
  Replace if/else with fetch
  Ensure location params are always cloned.
  Clarify naming of location parameters.
  Extract precondition assertion for readability.
  Remove unnecessary else clause.
  Get rid of nil check when extracting simple method name.
  Use Special Case 'Unspecified' object to represent missing Location parts in keys.
  Replace ternary with &&
Update Changelog for #74