better Compass class

this compass class allows for and external listener and replaced the deprecated sensor used in the old class.
it's also backwards compatible with the old Compass class so, it should work with the rest of the code

note: i"m not sure I did the class header correctly, by removing your name and adding my github profile instead... so you can probably update that to whatever you want...