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.
You've switched lin_acc.x and lin_acc.y around. This should be:

    double roll = atan2(lin_acc.y, sign * sqrt(lin_acc.x*lin_acc.x + lin_acc.z*lin_acc.z));
    double pitch = -atan2(lin_acc.x, sqrt(lin_acc.y*lin_acc.y + lin_acc.z*lin_acc.z));

(We've been agonizing over these lines before, see #4).