Unit tests - Remove duplicate test setup; group assert calls together instead.
- Copyedit test description too
Unit tests - Improve output format and content

- Count and display the number of tests/passes/failures
- Format the output of each test result for easier reading:
  "[12] pass - Test description"
  "[13] FAIL - Test description"
- Print error statements to console by default
- Print a "test X finished" statement to console, to make it easier to navigate when debugging
Unit tests - (minor) remove duplicate variable definition; fix indentation
Unit tests - Make print functions more maintainable
Perspectives - Refactor data variable declaration so notaries.js can be included in HTML files.

Currently the Perspectivevs.root_prefs and Perspectivevs.overrideService properties are initialized during declaration to be the return value of a Components.classes[].getService() call. But calls to Components.classes[].getService() require special permissions, and if the caller doesn't have them at object creation time then parsing or including the Perspectives object will fail. For example: the current style of declaration prevents us from including notaries.js inside test.html, as test.html doesn't have permission to read Components.classes by default. This prevents us from writing unit tests using anything in notaries.js.

To fix this, refactor root_prefs and overrideService so they are initialized at runtime by calling a function. This allows any caller to control when initialization happens and gives them a chance to ask for the appropriate permissions beforehand if necessary. We can then include notaries.js inside test.html and write our unit tests.
Unit tests - Add tests for parsing and adding Notary servers

- Add new tests to test.html
(now possible that data variable initialization has been refactored :)
- Add instructions on how to test and what to expect/how to set additional script permissionsn to README
Pers_results, Help pages - Consolidate code for pressing Esc to close windows into one location.
Now anything can reference it from common.js.
Unit tests - Rename global variables to show they're global
Unit tests - Add tests to see if each object is parsable and testable.

If not we may want to fix that.
Perspectives - Remove forced statusbar icon

- Remove <statusbar> from xul. In newer versions of firefox it looks like <statusbar> elements are forced onto the addons-bar as a hack. But both old and new versions of Firefox can use the <toolbarbutton> successfully, and can place it on the addons bar if they want, so we shouldn't need it. Also, Firefox versions < 4 are not being maintained or supported much longer ( http://support.mozilla.org/en-US/kb/Installing%20a%20previous%20version%20of%20Firefox ), so strong backwards compatibility may not be a high priority?
- Create new preference, 'perspectives.first_run', so we can add our <toolbarbutton> to the GUI when Perspectives is first installed.
- Add the <toolbarbutton> to the nav-bar when Perspectives is first installed. If Perspectives is removed and re-added or upgraded from a previous version we don't touch the presence or location of the button.
Preferences - remove duplicate line
Localization (en-US) - Copyedit line (the person reading the Preferences dialog *is* the user, so no need to confuse them)
Authors - Create authors file so contributors get credit
Unit tests - Add function to let us easily mark future/placeholder test cases.
Pers_client_policy - (minor) Add function explanation
Dialogs - Add onkeypress event to 'Report Attack' and 'Add To Whitelist' dialogs so they close when the user presses 'Esc'.

This makes their behaviour consistent with other Perspectives windows.
Unit Tests - Create file to track manual test cases - things that can't easily be or aren't worth automating.
gitignore - Don't track the build output
Pers_util - Create alert() wrapper.

Add the word "Perspectives" to our alert boxes so the user has some context on where the message is coming from.
Pers_debug - Add context to debug log output.

Add the word "Perspectives" so the debugger knows for sure where the message is coming from.