Don't allow identical needs to be created

Add a new validation to ensure that a need with the same `role`, `goal` and `benefit` as an existing need cannot be created.

This is designed to solve the problem where users mistakenly enter a need from a spreadsheet which has already been entered. It partially mitigates an issue where, when requests time out in production, the load balancer sends the same request to another machine, creating two identical needs.