Addition of `validate/3`

Going into main shortly, to be released with atomics being wrapped up (which will get its own larger announcement), we will support validate/3 in validations. To date, we did not expose the “context”, which currently contains the actor, tenant, tracer, and whether or not the request is being authorized (authorize?: boolean). The original idea is that validations were meant to be simple and context-free. However, in practice this often resulted in people starting with validations, until they realized they needed the current actor, and then they had to rewrite their validation to a change. validate/2 will still work as it originally did, but validate/3 can be used instead to get access to the current actor and other context information, the same as change/3