Single table inheritance

I've fixed up the single table inheritance support to include tests. 

In the process, I found that the definition of fields didn't work properly, especially the lazy definition of a primary key. A primary key is now immediately defined when Dynamoid::Document is included, and then removed by the table() declaration if a different key is specified. Otherwise, a derived class won't have an id column unless the parent class has been instantiated at least once.