ezlua 0.5.4

Ergonomic, efficient and Zero-cost rust bindings to Lua5.4
Documentation

### Types map

Primitive
| Rust                                      | Lua             |
| ----------------------------------------- | --------------- |
| i8/i16/i32/i64/isize/u8/u16/u32/u64/usize | number(integer) |
| f32/f64                                   | number(float)   |
| `&str`/`&[u8]`/String/`Cow<str>`          | string          |

Collections
| Rust          | Lua   |
| ------------- | ----- |
| Vec<T>        | table |
| HashMap<K, V> | table |

Builtin Std
| Rust                                      | Lua             |
| ----------------------------------------- | --------------- |
| i8/i16/i32/i64/isize/u8/u16/u32/u64/usize | number(integer) |
| f32/f64                                   | number(float)   |
| `&str`/`&[u8]`/String/`Cow<str>`          | string          |

### How to bind iterator

### How to bind async block

### The difference between `new_closure`, `new_function`

### Why efficient

`ValRef`

### Why ergonomic

* Stack slot auto manager
* Iterator
* Userdata

### Not always completely safe

有几种不安全的场景,由于实现方法的限制以及性能提升的考虑,没有在库的层面去加以限制,这意味着就算可以编译过去也不一定是完全安全的

1. set_closure `&'static`的绑定
2. 非`static`的userdata绑定