decoder: improve general record decoding
encoder: improve general record encoding
mix: update Elixir requirement