A_AHRS_DCM: virtual function from base class AP_AHRS was hidden.

ArduCopter/libraries/AP_AHRS/AP_AHRS.h:143:18:
‘virtual bool AP_AHRS::use_compass() const’

was hidden In file

ArduCopter/libraries/AP_AHRS/AP_AHRS_DCM.h:63:21:
by ‘bool AP_AHRS_DCM::use_compass()’

Also fixed const-ness of have_gps
resolved -Woverloaded-virtual warning:
virtual size_t AP_HAL::Print::write(const uint8_t *buffer, size_t size);

was hidden in all derived classes by their
virtual size_t write(uint8_t) = 0; implementations.

To solve this, a non-virtual write(const uint8_t *, size_t) that calls a
virtual write_implementation was added.

This isn't necessary atm, because the derived classes don't call
write(const uint8_t *, size_t), BUT this decreases the apm2-quad Program
size by 40 bytes :D and removes warnings.