First version of memory_profile to the new profiler
remove old code in comment that I don't need anymore.

It was the old memory profiler.
fix a bug(wrong value computer) and fix message.
Make the memory profiler print the shape.
Fix the Stack profiler. Make it work as the Loop, LoopGC and CVM profiler.
Track the shape of all variable in the graph.

Change the mechanism to track in variable_shape instead of outputs_shapes.
Add a new flag profile_memory that will print the inputs/outputs shapes in the apply node profile.
In the memory profile, also collect and print the strides information.
remove code that was moved.
Fix crash with the CVM
Use the good VM (Stack VM) when we enable the memory profile.
round and cast to int the memory profile info.
Raise an error if the CUDA_LAUNCH_BLOCKING isn't set to 1 when profiling GPU code.
The old ProfileMode memory profile is not removed.

We print a message to use the new profiler in that case.
This repair ProfileMode
Print a deprecation warning when we use the old ProfileMode
Raise an error in ProfileMode if CUDA is enable and we CUDA_LAUNCH_BLOCKING isn't set to 1.
In the memory profile, print the max memory used on the GPU.
Updated a little how the memory profile get printed.
Add Scalar.dtype  properties to make it work like TensorVariable.dtype

This fix a crash in the new memory profiler.
Make the memory profiler work when the profile contain multiple function.