Allow for string names when instantiating or updating records

This provides a great added benefit of allowing to import untrusted
dictionary-like structures without having to sanitize keys before
converting them to atoms, without the risk of running out of atoms.

The performance for atom field names remains the same, string names
are somewhat slower (as expected)
Disallow mixed use of strings and atoms in record initialization/update

This allows provides better overall performance to these procedures.
Merge pull request #1740 from yrashk/record-string-fields

Allow for string names when instantiating or updating records