Marked compatible with Firefox 19.0a1 & Co.

--HG--
extra : rebase_source : 519a536c4b1216359a8cf3ed326b139a8dd71c49
Marked compatible with Firefox 20.0a1
Added .hgignore file
Removed branchname metadata setting, no longer used
Reworked the top level dialog box. Added tabs for local operation and for
testing a task interface.
Renamed chrome/content/crawler.js to crawler_ui.js. There were two files named
crawler.js.
Added stub task_test_ui.js. All it has is a click handler to test JS binding.
Should have been part of previous commit.
New file task.js contains initial version of a long-running task class. Wrote
new code in task_test_ui.js to use it.

Added status field to task test tab.

Renamed click handler in the task test button.

Minor refomratting in crawler_ui.js
Implemented cancellation for the runner. Right now this only allows programmatic
cancellation, since the task runner doesn't ever give up control to the JS
interpreter.
Added variation in completion status display between Finished and Cancelled.
Added syntax workaround for IDEA defect in which it doesn't support 'yield'
expressions used as rvalues.
Renamed 'Task' to 'Long_Task'. There are, after all, many kinds of tasks.
Moved cancellation detection after the iteration call to avoid a possible defect
with cancellation before first iteration.

Added default runaway limit and an ability to override it with a constructor
argument. Added suppression of runaway detection if it's zero.

Removed completion_notifier from the Long_Task class and made it an argument to
the task generator.

Changed counter from local variable to class member in anticipation of using
setTimeout() to allow other event handlers to run.

New documentation.
Added check for StopIteration to distinguish between ordinary termination and
error termination.

Added two more logging functions to distinguish between the three modules, the
task runner, the task generator, and the task UI.
Bumped the default runaway limit to a million. Put a small limit into the task
tester.
Moved tg_count from task.js to counter_task.js. Adjusted its name in
task_test_ui.js
Added check for StopIteration when cancelling a task.

Added count argument to the counter task and a count notifier function.

Factored out update_status in the task UI.
Added argument to Long_Task.log to suppress log message with an argument.
Changed test for runaway_limit to a proper numeric test.

Added separate log message for ordinary completion of the counter task.

Changed the status update function in the UI to take a log-suppression argument.
Changed the Task instantiation to use values from the dialog elements. Added
a limit field to the dialog.
Set a high default runaway limit.

Converted from single loop to timer-spawned loop. Created '_run_once()' out of
the main 'while' loop from 'run()'. Kept the 'while' structure so as not to
rewrite all the 'break' statements at the outset. Loop only runs once because
there's a timer call and then 'return' at the end of the loop body.

Got rid of redundancy in the log messages of the counter task.
Merge default

--HG--
branch : collect-unmatched-filters
Merge collect-unmatched-filters
Close collect-unmatched filters

--HG--
branch : collect-unmatched-filters
extra : close : 1