fix filesystem_boost.cpp on mingw

this raises our dependency for boost iostream to 1.44 or above
add boost 1.44 comability

it seems like iostream from boost 1.44 is incompatible to filesystem
from boost  1.44.
Actualy i didnt veryfy this becasue i don't have boost < 1.50. I added
an adapter for boost filesystem that made it looks liek filesystem 1.43
which we can pass to boost iostreams 1.44.
fix msvc warning
make unicode_cast more generic

unicode_cast is now a template function that works with different types
of containers. Especialy it now works with both std::wstring and
vector<wchar_t>
fix some includes
simplyfy utf8::iterator implementation
remove double declarations in unicode.hpp
add custom codecvt for better error mesages.

this codecvt gibes errormessages in LOG_FS if it meets an invalid utf8 char.
also the boost codecvt seems inconsistetn becasue it seems on msvc it acepts utf8 AND ansi while it only accpets ansi on mingw.
use unicode programm args on windows
fix unicode cast
Merge pull request #305 from gfgtdf/istream_fix

we now use boost::istreams instead of boost::filesystem::fstream because the later doesnt work with mingw.
we now use a custom codecvt instead of boost locale because we want to get better error messages for invalid utf8 strings using our _ERR streams
we now use unicode prgamm commandline args on windows..