create Problem Builder
Returns a new problem builder which can configure and create Problem instances.
The builder uses a stepwise builder pattern forcing the clients to define all mandatory fields in a specific order.
Once all mandatory fields are set, the returned type will allow clients to call build to create a new Problem instance. The build method doesn't have any side effects, it just creates a new instance. Problems should be reported separately with report.
Return
a new problem builder