Speed improvements to factories

This adds a few speed improvements to factories. The primary
focus of this change was removing secure random. While it was
convenient, it was also slow. Secure random isn't needed for this
use-case because these values do not need to be secure in anyway.
This replaces secure random with alternative algorithms for
generating the same kind of data.

This also tweaks the record factory to cache active record columns.
This is opposed to re-fetching them from the DB everytime a record
factory generates an instance.