`serial_name` attribute

Usage:
`#[serial_name = "my_name"]`

TODO:
- [X] attribute lookup
- [X] deserialization hook
- [x] serialization hook
- [x] tests
This should use `assert_eq` because `debug_assert_eq` can be disabled, whereas rust will always check `assert_eq` tests.