Add ToHal trait

- renamed Hal struct to Resource
- renamed Hal.data to Hal.state
- added ToHal trait with a test
Rename Resource#with_uri to Resource#with_self