API: clearer errors and consistent responses
The public API now answers invalid input with a 4xx status and a clear message instead of a generic server error. All error responses share one JSON format.
Also:
- Description, icon and colour of custom activity types are stored reliably.
- The public plans are available at
/api/auth/plans, as documented. - A lead's opportunities and pipelines can be fetched again.