Adds BW::Location.get_compass & BW::Location.get_compass_once

Returns a hash of a `CLHeading` object in the form of:

```ruby
{
  magnetic_heading: newHeading.magneticHeading,
  true_heading: newHeading.trueHeading,
  accuracy: newHeading.headingAccuracy,
  timestamp: newHeading.timestamp,
}
```

### Example usage:

```ruby
BW::Location.get_compass do |heading|
  puts heading[:magnetic_heading] # Fires continuously while the device is rotating
end
```
or
```ruby
BW::Location.get_compass_once do |heading|
  puts heading[:magnetic_heading]  # Fires once on the first device rotation
end
```
### Tests:

I added tests for the entire spectrum of this feature:

```
799 specifications (1186 requirements), 0 failures, 0 errors
```