re-use ISink/ISource instances
various changes

* replaced vaious RuntimeExceptions with IllegalArgumentException
* changed ISource and children to read settings during prepare
added pom.xml & changed travis.yml