An adjoint-truncation error based approach for goal-oriented mesh adaptation