Prevent systematic lookups in the interpreter when asking typedefs

looking into the list of classes, protoclasses and enums before.
Disable dynamic scopes for named macros (ROOT-6802).

(cherry picked from commit d6089a303afae451f339d00f7d183ff2677fe062)
Proper C++ in tutorials, now that names macros require it.

(cherry picked from commit f03225c12c699a3e31ee091ed1836ef010e8619a)
Import new version of JSROOT from Sergey

server:
1. Allow to expand any object in hierarchy.
   Now server always provides information about objects members.
2. Security fix - prevent sevrer to provide access to parent directories.

jsroot:
3. Implement 'opt' and 'opts' URL parameters for main page.
4. Show progress with scripts loading in the browser window
5. When one appends "+" to the filename, its content read completely with first I/O operation.
6. Implement JS custom streamer for TCanvas, restore aspect ratio when drawing
7. Major redesign of drawing classes. Resize and update of TCanvas are implemented.
   All major draw functions working with HTML element id as first argument.
8. Extract 3D drawings into separate JSRoot3DPainter.js script
9. Use newest three.min.js (r68) for 3D drawings, solves problem with Firefox on Linux.
10.Introduce generic list of draw functions for all supported classes.
11.Add possibility to 'expand' normal objects in the hierarchy browser.
   For instance, this gives access to single elements of canvas,
   when whole canvas cannot be drawn.
12.Correct usage of colors map, provided with TCanvas.
13.Introduce JSROOT.redraw() function which is capable to create or update object drawing.
14.In main index.htm page browser can be disabled (nobrowser parameter) and
   page can be used to display only specified items from the file 16.Add support of TPolyMarker3D in binary I/O
Import latest changes from Sergey Linev

Changes in JavaScript:
Main improvements:
1. Better font size and position in pave stats
2. Resize/move of supported elements only inside correspondent pad
3. Adjust of frame size when Y-axis exceed pad limits
4. Correct values in tooltip for THStack
5. Exclude drawing of markers outside visible range
6. Drawing of canvas without TFrame object
7. Many other small bug fixes and improvements, thanks to Maximilian Dietrich

Known issues:
1. Time-scale is not perfect. One need significant redesign to use normal d3.time.scale
2. On canvas with histogram and several TF1 objects histogram tooltips hidden due to fancy svg:path rendering feature

Changes in TRootSniffer:
1. Ability to scan members of arbitrary objects
2. Experimental code to execute any object method (only when non read-only server is started).
From Sergey: Fix for CORS requests
From Sergey: Fix stats box drawn incorrectly when resized
Small correction in z axis scaling
Typo
Correct Z scaling of TH2 when drawing in 3D
From Sergey: switch to version 3.1 and fix small problem with tooltips
jsroot: remove example.htm, it will go into demo directory (not in repository)

Signed-off-by: Bertrand Bellenot <bertrand.bellenot@cern.ch>
jsroot: improve index.htm, add 'path' parameter to select location of available files

Signed-off-by: Bertrand Bellenot <bertrand.bellenot@cern.ch>
jsroot: implement TCutG painter

Signed-off-by: Bertrand Bellenot <bertrand.bellenot@cern.ch>
jsroot: improve TH2 drawing

Signed-off-by: Bertrand Bellenot <bertrand.bellenot@cern.ch>
jsroot: Introduce central JSROOT.Create() method to instantiate all supported ROOT classes

Signed-off-by: Bertrand Bellenot <bertrand.bellenot@cern.ch>
1. Correctly show tooltips in case of overlapped objects 2. Implement JSROOT.Create() method to create supported in JavaScript ROOT classes like TH1 or TGraph 3. Fix problem with JSROOT.draw in HTML element with zero width (display:none) 4. Provide possibility to load user scripts with JSROOT.BuildSimpleGUI and JSROOT.AssertPrerequisites, also with main index.htm 5. Support of TCutG drawing

Signed-off-by: Bertrand Bellenot <bertrand.bellenot@cern.ch>
correctly locate JavaScript ROOT sources, using ROOTETCDIR define

Signed-off-by: Bertrand Bellenot <bertrand.bellenot@cern.ch>