Adds profiling instrumentation on functions level.

This fork adds a new command "profile".

It works very similar to instrument command but instead of injecting coverage code, it injects profiling code to functions.

Each function is wrapped with 
try {
   profile.start(...);
}
finally {
   profile.end(...);
}

The produced code needs to have "profile.js" file added to it to run correctly as all the files will reference it.
A sample profile.js is provided.

Running the produced code gives you profiling statistics on the functions level.