Split spin

This splits the spin part of the gem into its own files so the preload hacks can be used on their own.