[CB-3992] Allow FileWriter.write() to accept File as argument

(Cherry-picked from cordova-js bfc74d6)
[CB-4017] Fixed behavior of DirectoryReader.

DirectoryReader.readEntries now returns all entries on the first call and an empty list on all subsequent calls.  (Technically, it returns batches of entries until they're all returned, then returning an empty list; this implementation just passes them all in one batch.)
[CB-4117] remove dupe code
[CB-4131] Use relative require paths in file plugin.