XD-990 Adding storage, reader and writer implementations for text data

Base model for storage, reader and writer for text data. Support
for csv and tab delimited data for writer. Classes also have preliminary
support for codecs and splits due to import of existing poc code.

XD-990 Make variables as final

XD-991 Add lzo codec infos

XD-990 Fix typo

XD-990 Fix possible problem with concurrency

XD-990 Better check that we don't end up with NPEs

XD-991 Adding tests for gzip and bzip2 compression

XD-990 Fixed few accidental errors

Removed one constructor because it's not used,
fixed copy/paste typos.

XD-990 Better exception handling for close of streams

Adding stream closing code in StreamsHolder which removes
boilerplate code from its user. Catch and throw error
if multiple holders are closed within a same call so
that all streams are tried to get closed.

XD-990 Forcing AbstractStorage to implement Storage

Per review this base class should implement Storage.
Adding close() method which sub-class may/should call.