implementing stream interface, with its very first protocol: file://.

Parser has been completely rewritten to use the new stream
protocol. Although the parser still only produces a boolean result, it
is generic enough to support all future stream backends (e.g. http)
and continues LL(1). The lexer continues LL(2).

The implementation uses libiconv to transform the characters into
wchar_t. This is not portable by any means, but keep the dependencies
to minimum (so far only libicu is required).

For unicode in C I've always been using ICU. However, this time I'd
like to give a try to wchar for learning purposes. According to my
readings, there is no portable way of transforming a given charset
into wchar_t safely. Using iconv seems to deal with the problem and as
its available on most NIX flavors it reduces a bit the damage.