fix to reading and writing files; due to dart:js changes

various bug fixes to reading and writing files

 * DirectoryEntry.getFile takes one more parameter then we were expecting
 * dart:js no longer automatically converts parameters that hold proxies
 * properly truncate a file when writing

Also, added some toString() methods, and we now throw exceptions when an unimplemented method is called.

@kevmoo @financeCoding