Move the sampling profiler into base

This also cleans up many aspects of the API:
  - Rename SProfile->Profile
  - Don't include sprofile_ in function names, use module scoping
  - Export only @profile, all others get scoped
  - Combine _tree and _flat into a single Profile.print() method
  - kwargs for Profile.print():
       format:   :tree, :flat
       C:        true, false  (whether to show C instruction pointers)
       combine:  true, false  (whether to merge ips resolving to same info)
       cols:     <Integer>    (the number of columns used in formatting)
  - Pass data as an argument to Profile.print() (now it's possible to
       profile the profiler!)
  - Define a LineInfo immutable to store code lookups (instead of tuples)
  - Use better variable names
Add documentation for Profile
fix #3623
remove OUTPUT_STREAM and square from helpdb
fix #3758, also change some declarations to C99 style
Fix null after change of full/thin convention in svdfact and a test to capture the error
add '?' repl help shortcut (closes #3833)
don't rethrow pmap errors from other processors
small tweak to @help
Update libuv

Major changes in this version are
 - The error API now doesn't use structs, so we need to adjust for that
 - The build system now uses autotools
 - Fix random bogous assertion failures
Bump libuv once more to include configure script
The rest of the autconf files as well
Alight, final bump to deal with libuv's new build

sorry about the trouble, folks
Also adjust libuv API in flisp

Didn't know flisp even used that.
platform macros with (ternary operator) else clauses, of the form `@windows? a : b`
Fix libuv error codes when building with clang
Build libuv autotools scripts with autoreconf -i
Fix typo in src/uv_constants.h/add m4 files(uv)
Revert libuv bumps

Libuv is doing something odd to their autotools, which we couldn't figure out.
Sorry about the trouble, guys

Fix typo in src/uv_constants.h/add m4 files(uv)

Revert "Fix typo in src/uv_constants.h/add m4 files(uv)"

This reverts commit ab2412e2270017f308b4ab01c820ecb6542ebebe.

Revert "Build libuv autotools scripts with autoreconf -i"

This reverts commit f8a4e2e09a2429270c6f5323651a623565c9f15d.

Revert "Fix libuv error codes when building with clang"

This reverts commit 27cc4616dea6ebe0284263ee9053e5cce9f81852.

Revert "Also adjust libuv API in flisp"

This reverts commit cb25cf12ad16c7d47fadedde0b78549899eb10c1.

Revert "Alight, final bump to deal with libuv's new build"

This reverts commit e250bad93e514d2cd55700705c9b1099cc0a1a3e.

Revert "The rest of the autconf files as well"

This reverts commit fa9721e125d0e9dbe23a4c53dcb46bf8cf0cf3f7.

Revert "Bump libuv once more to include configure script"

This reverts commit 141bf713331272bf538fbb33822ddf14d064620f.
Revert "Update libuv"

This reverts commit 8109a6f8d0a45664f602d7f73e02ebe6fe720081.