Improved profiler + recursion avoidance.

[ADDED]     PearlIfNotRecursing: Run a block that may cause recusion only once when it hasn't recursed yet.
[IMPROVED]  PearlProfiler: prof_* macros & a profiler that logs more useful information.