Adds native record encoding to the library

Adds the possibility to encode records natively without using createDictWith to the library. The output is always lowercase.

Due to introspection to retrieve the contents of a record this method is somewhat slower than the original method.