Determine the columns available in a collection through analyzing a sample of documents

@mcinbell Can you please sign off?

@ant0 Can you please QA sign off?

@IAmFledge @waynemoore For reference.

The purpose of this change is to more reliably determine the column metadata for a collection by examining a sample of documents in the collection, rather than just examining the first document.