Add basic and minimal support for Firefox 3.6

The code base is using Object.defineProperty just for an old WebKit hack, but it is not supported in Firefox 3.6 and thus breaks the entire code. A simple feature detection was added before using it.
The code base is using Array.isArray which is not implemented in Firefox 3.6, thus breaking the entire code. A simple and small polyfill was added.