Merge pull request #1 from jaynel/documentation

Initial Documentation
Initial build of circular buffers
Merge pull request #2 from jaynel/circular-buffer

Initial build of circular buffers
Finish 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.
Add write_concurrency to ets_buffer
Add cxy_ctl for spawn limiting from jaynel/circular-buffer

Allow spawning of processes up to a limit, after which new requests
run inline. The spawn counting and caps are kept in an ets table
named 'cxy_ctl'. A ring buffer of execution times is also created
for each concurrency type in the 'ets_buffer' table.

Concurrency limiters are initialized together in a single action
from a proplist of {Task_Type::atom(), Type_Max::pos_integer(),
Timer_History_Count::non_neg_integer()}. They are then used in
execute_task/4, which has no return value, or execute_pid/4,
which returns a pid or an inline result. The functions
concurrency_types/0, history/1 and history/3 are used to see
information about the currently configured concurrency limiters.
Merge cxy_ctl
Merge sponsorship acknowledgement from jaynel/circular-buffer
Bump version to 0.9.1
Fix sponsorship name