Enable Pose.scores dictionary to store arbitrary python objects (#430)
* Fix KeyError for string objects
* Serialize and deserialize values in pose scores dictionary
* Update TypeError message
* Maybe deserialize ScoreMap.get_arbitrary_string_data_from_pose data
* Test PyJobDistributor with arbitrary scoretypes
* Test SimpleMetric implementation
* Fix NotImplementedError
* Update unit tests that assert that float values are rounded upon score set/get round trips
* Add warnings for setPoseExtraScore float value precision change, type casting, and possible UnicodeDecodeError
* Update import
* Update reserved scoretypes
* Add rounding difference to warning message
* Update imports
* Initial refactor of pose.cache dictionary
* Add pose.cache unit tests
* Remove numpy dependency for non-serialization builds
* Change pose.scores to pose.cache
* Move pose.cache into modules for comprehensibility
* Use pose.cache instead of packed_pose.update_scores
* Set clobber warnings in pose.scores
* Add deprecation warning to pose.scores
* Add warning if key in immutable SimpleMetrics data exists
* Clean up
* Setting PackedPose.scores to Pose.cache
* Set cache with packed_pose.update_scores
* Fix warning
* Reserve pose.cache keys
* Update warning messages
* Update warning message
* Update PackedPose.scores dictionary with pose.cache
* Update logging message test
* Update reserve_scores decorator to be using pose.cache
* Add update_scores in reserve_scores
* Update version
* Add syntax warning for setting PackedPose.scores items
* Test saving detached scores in the PackedPose.scores dictionary
* Improve docstring example
* Update docstrings
* Clean up
* Split into separate warnings when deleting reserved scoretypes
* Return nested MappingProxyType read-only data by pose.cache.all_scores
* Update docstrings
* Minor tweaks to docstrings
* Clean up applying SimpleMetrics to the pose
* Validate strict base64