Add freelist stats to db stats

This is fairly straightforward, the only twist is adding freelist.count() because freelist.size() used to call freelist.all() which is fairly expensive (this may actually shave off a bit of time from write transactions, freelist.all() used to show up in our profiles in non-trivial amounts as well).

@benbjohnson 

/cc @snormore, @charlescng 
@mkobetic `db.freelist` can only be used by the writer transaction. Also, you don't need to update the `db.stats.Freelist*` on every transaction -- just on writer transactions since those are the only ones that can change the freelist.