Implement various `VirtualKeyboard` methods

Implements:
  VirtualKeyboard.isVisible
  VirtualKeyboard.getXPosition
  VirtualKeyboard.getYPosition
  VirtualKeyboard.getWidth
  VirtualKeyboard.getHeight
  VirtualKeyboard.setVisibilityListener

Also updates the documentation of a couple of classes
Remove superfluous console logging
Implement FileSystemRegistry.listRoots.
Merge pull request #574 from yxl/listRoots

Implement FileSystemRegistry.listRoots.
Cache file stats to avoid IDB lookups

- Adds |fs.fileStats| that maps paths to their file stat object
- Adds |size| to the file stat object so that |fs.size| can use the cache

Conflicts:
	libs/fs.js
Fix unit test stat caching unit test failures

- fs.close is async, use it's callback
- update assumptions on unflushed files
- fix fs.ftruncate impl
Add trailing semicolon
Move javaUTF8Decode function to util.js
Nativize DataInputStream::readUTF. Fixes #368
Use setZeroTimeout instead of setTimeout(..., 0) in libs/fs.js. Fixes #442
Load timer.js in fstests.html
Merge pull request #581 from EricRahm/fs_stat_fixes

Cache file stats to avoid IDB lookups (rev2)
specify bootclasspath and extdirs
Merge pull request #585 from mykmelez/specify-bootclasspath-extdirs

specify -bootclasspath and -extdirs when compiling Java classes
Remove DataInput from custom/
Merge branch 'master' of https://github.com/andreasgal/j2me.js into datainputstream_readutf
Merge pull request #583 from marco-c/datainputstream_readutf

Implement DataInputStream::readUTF in JS
Merge pull request #584 from marco-c/setZeroTimeout_when_possible

Use setZeroTimeout when possible
Implement native method to enumerate content types for com.sun.mmedia.DefaultConfiguration.
Add MediaSampler midlet.