Loop through all widgets in dashboard.getAll().

Instead of explicitly calling individual refresh functions, which causes
some amount of duplication, simply loop through all of them, making sure
not to call getAll() recursively.
Merge pull request #93 from commonquail/js

Simplify dashboard.getAll()