[errors][play] Add AsValue in go 2 error inspection
[errors][play] Add AsValue in go 2 error inspection

- the proposal mentioned if polymorphism is not implemented in go 2,
then a workaround is to use `AsValue` which is similar to
`json.Unmarshal`
- the implementation use `reflect.Typeof` to do type compare and use
`Value.Set` to set the value (though it might be a bit hard to use
because you need to declare the right error struct first and pass its
pointer in ... which is troublesome ... let user do check and then do
type assertion might be a better idea ...

dyweb/gommon,dyweb/gommon,dyweb/gommon