Bug fix, `Model#save` correct backtrace for all ruby versions

This is a bug fix to make sure all ruby versions return the
correct backtrace when `Model#save` raises an exception. This
failed because `caller` is inconsistent between ruby 1.8 and
2.0. In ruby 1.8, it didn't include the `transaction` call and
block in it's results. In ruby 2.0 it does. To fix this, I use
the exception's backtrace and remove the first lines till we
get back to the `caller` of the method. This was done instead
of saving `caller` off at the beginning of the method because
calling `caller` has a performance hit. This is not an issue when
we are throwing an exception, but for normal saves, we would like
those to be as fast as possible.

/cc @kellyredding