Switch Dynamoid to use Enumerator instead of Arrays

This is the first commit where I convert Dynamoid to use Enumerators. The reason for this commit is dynamodb sdk has a batch_size property which allows you to essentially iterate over a large list but retrieve the items in batches and only they are needed.

Since dynamoid itself has always retrieved all the items prior to doing any work this meant that certain operations, like .all, would fail as the total rows in a table got bigger.

I've also added a small fix to query to allow the :select option which allows the query to return all the results in the response to the query if people want to use that.

I need to add a few more tests to be confident in the changes and some more documentation to explain the benefits but I wanted to open the pull request now to get the discussion going on how this is being done.