Adjust file/directory methods source code location
Add wrapping methods for easy event data accessing

It's not convient to access XPCOM object from JS since they have been
wrapped. With Noise.wrap user can convert object to JSON during
Noise.notifyObservers, and then do JSON parsing in custom filter
function with Noise.unwrap.

Noise.unwrap has a shorter alias named Noise.O.

These methods only work when browser has JSON support (Firefox 3.5).
Add data argument to "noise-alert-loaded" event

It's a wrapped object (JSON) represents the window.arguments of Alert
Notification window. This allows setting different sounds for specific
notification.

See `prefillAlertInfo` function in mozilla-central source for arguments
usage:
toolkit/components/alerts/resources/content/alert.js
Change wrap method to take array argument easier

`Noise.wrap(obj, props)` now accepts array as `obj` (will be converted
to an object with keys '1', '2', ...), and `props` can be null, means
taking all properties (from Object.keys).
Use Browser Console (Fx 23 onwards) logging

When Console.jsm available, expose `Noise.console` to access Browser
Console. Also change undocumented `Noise.log` to use Console API.
Move Noise.init() to the end of module code
Preliminary Audio format support, with <Audio> tag

We can't create <Audio> in JavaScript module since there is no DOM API,
create <Audio> in overlaid window instead.
Merge branch 'develop'
Drop Gecko 1.9.x (Firefox 3) support

- Services.jsm is only available in Gecko 2.0 onward.
- Also bump max version to Firefox 27.
Version 1.4