Add asset_type as a required property for asset keys
Merge pull request #19 from cpennington/asset-key-properties

Add asset_type as a required property for asset keys
Allow empty strings or None for AssetLocator paths and course runs, because those are used by edx-platform to generate prefixes of deprecated keys
Merge pull request #21 from cpennington/allow-empty-names

Allow empty strings for AssetLocator paths and course runs, because those are used by edx-platform to generate prefixes of deprecated keys
Use replace for manipulating CourseLocator, so that deprecation is preserved
Merge pull request #22 from cpennington/use-replace-more

Use replace for manipulating CourseLocator, so that deprecation is preserved
Fixed several deprecation issues

Changed _key property in OpaqueKey to no longer use type

added usage_key_from_deprecated_string

added replace for AssetLocation, Location, and SSCK

added _from_deprecated_son to AsssetLocation

added course_key kwarg check for LocationBase

Added Testing

Moved deprecation warning for i4xEncoder from default to __init__

Cleaned up offering handling to work with deprecation

LMS-2923
Merge pull request #24 from edx/mathewpeterson/add-more-deprecation

Added more deprecation handling
Version is a property, don't invoke or define as a method
Throw deprecation warnings one level up (out of opaque-keys module)
Merge pull request #25 from edx/sarina/fix-version-call

Version is a property, don't invoke or define as a method
Merge pull request #26 from edx/sarina/update-deprecation-warnings

Throw deprecation warnings one level up (out of opaque-keys module)
Move deprecation warnings into test fixture
Merge pull request #27 from edx/sarina/warnings-filter

Move deprecation warnings into test fixture