Bug fix for Issue #27

See https://github.com/illuminate/database/issues/27

I did additional testing, and it appears that this is a bug.  I implemented a more elegant solution, and fixed broken unit tests.