Fix/type switching

Fixes switching the type of work_packages (new and existing).

Additionally:
* it cleans up the work package controller to always use work_package as an entry point.
* it changes ancestors/descendants presentation for a work package to use the same that was formerly only used for issues.
* enables setting custom fields
* speeds up specs.

OP issue: https://www.openproject.org/issues/1598