added forced reloading (hack-ish, see viewer.js .load(..), .reload(..) and .updateRibbon(..) for more info) and some refactoring and cleanup...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>