Complete implementation of shared ets_buffer API from jaynel/circular-buffer

Use a single ets table named 'ets_buffer' to hold all buffer descriptions
and buffer data. An #ets_buffer{} is used to describe the buffer attributes,
and a #buffer_data{} is used for each element in the buffer.

The following interface is provided for interacting with ets_buffers:

-spec list() -> proplists:proplist().
-spec list(buffer_name()) -> proplists:proplist().
-spec create([{buffer_name(), buffer_type(), buffer_size()}]) -> ets_buffer.
-spec clear(buffer_name()) -> boolean().
-spec delete(buffer_name()) -> boolean().

-spec write(buffer_name(), buffer_data()) -> true | not_implemented_yet.
-spec history(buffer_name()) -> [buffer_data()].
-spec history(buffer_name(), pos_integer()) -> [buffer_data()].

Create/1 inserts a new buffer description record, and write/2 adds data to the
buffer. Clear/1 removes all data in the buffer, while delete/1 clears the
buffer and removes the buffer description record. The history/1,2 commands
return a list of the data in the buffer ordered chronogically with the oldest
entry first.

This commit sets the initial library version as 0.9.0 in dk_cxy.app.src and
establishes github.com/extend/erlang.mk as the build technique. Validation
of code at the shell and via dialyzer. No automated test cases exist yet.