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
divide-and-conquer approach would be faster for inserting new elements,
and 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