Adds native record encoding to the library

Adds to 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.