I would really like to see us simply call `Array.prototype.forEach` here like so:

    DraftList.prototype.forEach = function(callback, scope) {
      var arr = Array.prototype.slice.call(priv.get(this), 0);
      Array.prototype.forEach.call(arr, callback, scope);
    };

We operate on a copy of the array (so there's no sacrifice of privacy). And because we expose the length, the built in `forEach` can simply be called on our copy. 

If we support multiple drafts per thread then we'll want an actual iterator. Even if I can't think of a use case right now, I don't want to write code in a month expecting to use the array index in a `Drafts.List` and then have to debug why a method called `forEach` wasn't passing the right arguments to a callback.

If we end up supporting only a single draft per thread, we won't need a foreach method. We can just return a draft copy from a threadId.