Feature/refine errors

- create error category (like Exception class for various languages)
- change all lua_error call using above new category
- enable to check error type
- if error is timeout, then call special callback to handling reconnection (because client should be close connection when timeout occurs. that is likely to lost their connection)
- make above feature optional because for server, sometime its better to retry simply.