DW implementation - unlink

* Implemented `/auth/unlink/{provider}` endpoint and some refactoring.
* Prevent user from unlinking their single sign-in method (a change in client side to include the message from the server)