Revert of [Courgette] Refactor: Manage AssemblyProgram and EncodedProgram with scoped_ptr. (patchset #5 id:80001 of https://codereview.chromium.org/1629703002/ )

Reason for revert:
Breaks ninja build on Linux GN.

Original issue's description:
> [Courgette] Refactor: Manage AssemblyProgram and EncodedProgram with scoped_ptr.
>
> Previously naked pointers AssemblyProgram and EncodedProgram are used over the
> place, and are deallocated using Delete{AssemblyProgram, EncodedProgram}().
> In this CL we use scoped_ptr to manage the life cycles of these objects.
>
> - Removed DeleteAssemblyProgram() and DeleteEncodedProgram() and replaced calls
>   with e.g., program.reset(nullptr); if the manual deallocation is a peak
>   memory optimization.
> - Moved Encode() and ReadEncodedProgram() to the .h files matching the .cc files.
> - Extracted DetectExecutableType() and ParseDetectedExecutable() from
>   disassembly.* to new files program_detector*c, since Disassembly is really an
>   implementation that caller's don't care about.
>
> Committed: https://crrev.com/0a9cbf1781a114b35a4e0f4a834f2d24ade2e917
> Cr-Commit-Position: refs/heads/master@{#372212}

TBR=wfh@chromium.org,grt@chromium.org,huangs@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1650013002

Cr-Commit-Position: refs/heads/master@{#372274}
18 files changed