Fix loop condition, should check for end, not start

remove call to item_controller, the id of the returned item type is always the same as the parameter,
e.g. "item_controller->find_template(X)->id == X" is always true
check for valid iterator, use default (first) entry if iterator is invalid
Partially revert "initialize vehicle direction in its constructor"

Set direction of new vehicle to the requested values.
Merge remote-tracking branch 'dda/pr/8076' into dda-master

* dda/pr/8076:
  Fix loop condition, should check for end, not start
Merge remote-tracking branch 'dda/pr/8079' into dda-master

* dda/pr/8079:
  Partially revert "initialize vehicle direction in its constructor"