Library-ization refactoring

To enable this code to be used as a library at Ai2, some refactoring of both the primary entry point (MetaTag), and to basically anywhere there was file I/O: 

  * MetaTag.main() now delegates most of its work to an instance (non-singleton) object to process individual xml input files, as a) static singletons are evil, and b) there wasn't any easy single-file-at-a-time entry point

  * I modified ScalaPipelineComponent to consume and emit simple struct-like case class which currently has just the xml and the filename, but in general, should future-proof the API contract of the pipeline

  * data files being read from the data/ directory have been moved to src/main/resources/data, which is bundled into the jar now, and accessed via a new helper method (in MetaTag now, but should be a more generic helper) - classpathDataInputStream(fileName: String), and in general, places where files are created or read from are now accessed via InputStream/OutputStream - this way we can toss them into ByteArrayXYZStream or ObjectXYZStream and pass them around inside the JVM instead of always handling files (which may not get cleaned up properly in a distributed environment).

  * the build file wasn't giving this a proper ivy/maven build: there was no organization set, so that's been added.

  * some additional null checks, exceptions caught, and slight formatting cleanup
So I realize that by making this a local variable, rather than a static one on the object, that these ids now don't continue from one paper to the next, in the case where this code is run via the MetaTag.main() which takes input as a list of files.  I tried to track down where this id is used, but it's hard for me to tell the difference between this Reference.id and Reference.refmarker.

I can make this global again, but I'm a bit concerned that this means that running MetaTag over a bunch of papers requires doing it all in on JVM in one MetaTag.main() call, and yields different (bad?) results when run on many pstotext outputs in parallel or in different JVMs