1. Add same return value with contact GET interface when updating
2. Add pull params for query to pull subcontact by mobile number.
For example, pull user_id from dingtalk throught user's mobile
number.
3. Add corresponding feature based on above for climc.
4. UserCache will try FetchByName if there is no id matched user when
fetching users from KeyStone.
1. Uname is availbale now in api via adding "uname=true" in query.
So we can use uname in climc which is much more visual and use uid in
web client which avoid time-consuming remote calls that may occur.
2. Previously, the template for the message was managed by the
individual sending components. Now, these templats was managed uniformly
by Notify Service so that we can easily add and remove.
3. Now, failure to send a validation message will trigger a notification
to the user via websocket.