Improve Error Handling in Local Directory Feeds

This change improves handling of two error types for filesystem
based feeds. The first one is the handling of IO Errors which
causes the input stream to be closed, and the second one is
reacting to missed filesystem events. In both cases, we scan the
directory and compare it with the history we have in order to
resume from where we last left off.

In addition, this change includes some refactoring in external
data. Particularly, we get rid of the stream provider layer and
instead, stream factories create input streams directly. This
is consistent with record reader factories which create readers
directly without reader providers.

Change-Id: I08d89229e33c91532b1038ba9f7a372f7ca1fdb5
Reviewed-on: https://asterix-gerrit.ics.uci.edu/720
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Murtadha Hubail <hubailmor@gmail.com>
diff --git a/.gitattributes b/.gitattributes
index 2451378..5eb0c00 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -18,3 +18,6 @@
 
 # Explicitly declare binary files
 *testdata.txt binary
+
+#Unset sample_01.cvs
+asterix-app/data/csv/sample_01.csv text=unset