[FLINK-701] Rework of TypeExtractor for SAM support

This closes #52
Add dedicated test for the type extraction on input formats.

Fix various JavaDoc errors.
Fix cost formulas for cached hash joins
Fix estimation bug in channels
Add tests for isolated cost formulas
Add tests for channel class in plan candidates
Fix missing strategy constants in JSON dump generator
No explicit caching when hash table is cached
Add tests for explicit cache removal when hash table is cached
Clean up checkstyle and JavaDoc errors in core project