Add ordered-array data structure and algorithms

This patch adds a simple generic struct ordered-array_s structure, along
with corresponding functions to create, destroy, insert item, lookup
item and remove item.

The insertion algorithm simply iterates along the array, so array insertion is
an O(n^2) operation in worst-case-scenario conditions. A binary search tree or
heap-ordering algorith would be faster for inserting new elements; this
improvement can be implemented transparently at a later date, without breaking
the API.

Note that the ordered-array destructor is currently not-implemented.
kstream: Move k_* macros into kstream.h

The k_message, k_warn and k_critical macro functions have been moved
into the kstream header file, from their old location in the util.h
header. This is because a file may include util.h without first
including kstream.h, causing an implicit function declaration of
kstream_message().

It is not possible for util.h to include kstream.h as this causes some
circular cross-dependency problems, as kstream.h depends on some
definitions from util.h.
kstream: Remove unused variables