API: Add Iterable class/interface.

This commit adds an Iterable class (which may later be turned into an
interface once we support those) and modifies containers so that they
derive from that class.

Iterable class contains useful methods for element access and searching
as well as an bubble sort method which can be used to sort unordered
containers.