basic factory for generating random raw data

This adds a helper module `Factory` that will generate random raw
data values.  Use this to seed test objects with data.  Because
the data is random, it helps prevent false-positive tests due to
hard coded expectations, etc.

This module is optional so it isn't required as part of requiring
in assert proper.

Closes #185.

@jcredding I ripped this from the similar stuff you did in MR (the relevant parts anyway).  Thoughts?  This came up b/c I was writing tests in a non-db app (so not using MR) and I found myself wanting to just shove in some random "factory" data in my object-under-test.  I'm hoping we can alter MR to use some of this (really it would extend it).  Anyway, let me know what you think.