AC_WPNav: bug fix for loiter init in Hybrid

AC_PosControl::init_xy_controller() has been added to PosControl and is
called by init_loiter_target.
Hybrid is currently using set_loiter_target function to init the loiter
controller. So we have to call init_xy_controller() by set_loiter_target
function.
What happens otherwise?
In AC_PosControl::update_xy_controller, we update "now" with
now = hal.scheduler->millis();
and, as _last_update_xy_ms has not been updated previously by
init_xy_controller(), we just call init_xy_controller().
So, _dt_xy  will be negative and used anyways in all the functions and
PID called by update_xy_controller.
That will avoid at least _accel_target.x/y to be set to 0 but I'm not
sure for the high values, probably an I_term that is not reset and
reached very high value.
Or maybe a cast error somewhere... no clue at all
AC_WPNav: set_loiter_target uses set_xy_target

Loiter is only a horizontal position controller so it should not set the
z-axis position.
Moved pos_control.set_speed and accel functions so order matches
init_loiter_targets function order
Copter: remove setting Z-axis target in Hybrid

This workaround is no longer required because AC_WPNav's
set_loiter_target call no longer sets the position controller's z-axis
target
AC_WPNav: rename set_loiter_target to init_loiter_target
Copter: integrate init_loiter_target name change