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
Merge branch 'master' of github.com:JuliaLang/julia