Refactor S3SoftwareURLs away

This PR removes the use of the `S3SoftwareURL` mixin and attempts to move more of the S3-specific things into a single class.

This PR also fixes an issue where the key for a software definition was cached on the class, thus causing #188.

- Fixes #188