Initializing yaw orientation from magnetometer reading.

- added magnetometer biases (mag_bias/x and mag_bias/y) for hard-iron compensation.
- add two debug topics: imu/rpy/raw and imu/rpy/filtered. imu/rpy/raw can be used for computing mag. biases. imu/rpy/filtered topic is for user readability only. 
- added an option for tilt compensation and initializing yaw orientation from magnetometer reading.
Hmmm. On one hand, it feels wrong to publish orientation as a Vector3, and in degrees on top of that. Vector3 represents a vector in free space; orientations should always be published as quaternions. On the other hand, this topic is only for debug purposes, and for that it's much more useful to directly publish the roll/pitch/yaw values. So perhaps it's best to leave it like that, but directly publish the radians (instead of converting to degrees). Any opinions? @mikepurvis ?