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.
XD-999 JSON - Add StepExecution Serialization
XD-163 Add CompositeModule

XD-937 injecting ModuleDefinitionRepository instead of ModuleRegistry to ModulesController (and XDStreamParser)

add in-memory repository for module definitions

InMemoryModuleDefinitionRepository delegates...
1. to superclass for composed modules
2. to moduleRegistry for 'normal' modules

modified resource assembler for ID by type & name

now defining moduleDefinitionRepository in shared config (based on store param)

updated code in this branch for ModuleType changes

added RedisModuleDefinitionRepository

added CompositeModuleDeploymentRequest

refactored imports for spring4 updates

ordered modules

now determining composite module's type asap (in controller)

added ModulesController test

added compose module test in ModuleCommandTests

added ComposedModuleStreamTests
XD-163 polishing

Add feedback on inferred module type

Use Jackson feature to handle subclass

Remove index check in params handling

Make ResourceAssembler a field

Use enum == instead of equals()

Avoid mutating existing list in parser

Remove unnecessary null check

Fix a test to match new command status description
XD-942 Changed repo URLs to spring.io
Add job modules to gradle projects list
XD-935 TupleCodec uses kryo serialization

XD-935 Fixed test issues. Upgraded to kryo 2.22 and made tupleToStringConverter transient
Fix NPE in StreamTestSupport

Only call stop in cleanup if node instance is not null.