Merge Location class into BlockUsageLocator, and base AssetLocator on the merged class

Fix tests to reflect this.

Co-Author: Sarina Canelake <sarina@edx.org>
Co-Author: Calen Pennington <cale@edx.org>
Merge pull request #13 from edx/sarina/merge-locators-locations

WIP merge locators locations
Make block_type abstract in the base UsageKey class
Add an abstract block_id property
Pass deprecated status into newly created usage keys
Fix comment reference to AssetLocation
Add test that CourseLocator can be converted from deprecated to non-deprecated formats
Merge pull request #16 from cpennington/minor-cleanup

Minor cleanup of opaque-keys library
Add deprecation warnings to removed classes and methods

LMS-2856
Merge pull request #15 from edx/sarina/deprecation-warnings

Add deprecation warnings to old-style Location classes
Adding deprecation value to replace function
Merge pull request #17 from edx/mathewpeterson/replace-deprecation-passing

Adding deprecation value to replace function
Document requirements for replace, and use it to implement key methods
Use _key directly for equality checks
Merge pull request #20 from cpennington/fix-equality

Use _key directly for equality checks
Merge pull request #18 from cpennington/use-replace

Document requirements for replace, and use it to implement key methods