Add ets_buffer:read_all, num_entries and capacity

Contributor: Jay Nelson (jaynel)
Branch: 0_9_3

Add functions for determining the number of entries in an ets_buffer
that have been written, but not yet read, as well as the total
capacity for an ets_buffer (ring has a specific size, while lifo
and fifo are unlimited). Add a function for reading all the unread
entries from a ring or fifo buffer. The unread messages from a
lifo buffer must be read one at a time, because there is no safe
concurrent method to retrieve multiple entries from a buffer that
may have holes in it as lifo does.