Deferal execution control

This patch introduces a boolean flag to control GcLock defers on user-side.

For example, this can be useful for code which only wants to run defers on certain paths, and keep others as fast as possible.

Also, some cleanup has been made on the directory tree. Unused files have been removed from the directory tree in order to keep it clean.