Update to accomodate recent Elixir deprecations.

- Use structs to represent fields
- Removed last remaining records
Version 0.3.0

Update to be compatible with 0.13.3

- No more records anywhere internally
- Preserve location in macros for better error tracking
- A few odds and ends for the internals