Instead of managing a set of method pointers in each input_stream struct, move these into the new input_plugin struct. Each input_stream has only a pointer to the plugin struct. Pointers to all implementations are kept in the array "input_plugins".
Renamed all functions and variables.
The global constructor is empty, and can be removed.
Renamed inputStream.c and inputStream_file.c.