Syntax Fixes

Assignments should be terminated with semicolon
Added isRecording() instance method

Variable name recording could be interpreted as a noun or an adjective.
Renamed to isRecording for clarity.
Clarified Logic

Seemed a bit convoluted to have two exit points in the method
onaudioprocess
made context and node private

it was not clear why these should be public.  Probably safer for
recording to not let people mess with it.
Made node creation less convoluted

Easier to understand IMHO
Removed configure

It is ambiguous what the expectations are for configuring post instance
creation. Configurations like bufferLen are required at init time.
Updated doc
Updated missing info in DOC
Removed anonymous closure

the scoped window object optimization was not being used in most cases.
IMHO it’s better to reduce file size and code complexity and have one
less execution context
Grouped config and defaults

Moved all config items to top of constructor
Moved var declarations to top of constructor
Grouped worker and node init logic
Removed global callback method in config

Having one method which should handle two very different kinds of data
supports bad design. Each method should have one clearly defined
output. Callback is now required.
clarified that type is actually setting mime type

Someone could get confused that it might actually change the type of
file returned
Removed shared callback handler

Because exportWav and getBuffer are async it is possible for someone to
call both methods in succession and only the second method will receive
two callbacks
Fixed error in last commit
Moved to prototypical inheritance

Avoids having the methods re-created for each instance of Recorder.
Makes constructor code more concise.
renamed record and stop. Fixed doc

More clear what the behaviour is.
Fixed bug
Fixed bug in config values