Add `Stack`, allows creating a record/model and all it's dependencies

This adds a `Stack` feature that allows easily creating a record
or model and all of it's dependencies. This is done using MR's
factory and inspecting ActiveRecord's association information.
A `Stack` is given an object class and it will "walk" up it's
dependencies (belongs to associations) and create them in the
correct order. This allows easily creating a full stack of records
or models without having to manually build them in the correct
order. MR's factory handles building defaults for the attributes.
This is a first pass at the idea and doesn't account for many edge
cases like complex validations or polymorphic associations.
Merge pull request #50 from redding/jcr-mr-stack

Add `Stack`, allows creating a record/model and all it's dependencies
Make sure `FakeRecord`'s can be used with a `Stack`

This allows using a fake record with a stack, model or record.
The only change needed was to provide the association's record
class. With this information and the previous changes to fake
records, a record stack can easily "walk" a fake record's belongs
to associations the same way it does for a real record. This adds
system tests for both record and model stacks to ensure that using
a fake record works with the 2 stacks.
Merge pull request #51 from redding/jcr-mr-stack-with-fake

Make sure `FakeRecord`'s can be used with a `Stack`