Improve audio ucode identification.

Previously, alist based ucodes were classified as either ABI1, ABI2 or ABI3.
This classification is too simple to take into account all versions/revisions
that really exist in the wild. Furthermore, it prevents from implementing some
version/revision specific behaviors.

There are indeed 3 big "families" of alist based ucodes:
-ABI1 (or audio) which seems to be the very first version developed.
It was distributed to 3rd party devs and is the most common.
2 minor revisions were made by Rare for GoldenEye, BlastCorp and DiddyKongRacing.

-ABI3 (or naudio) which is the later revision.
It was as distributed to 3rd party devs as well and is the second most common.
4 revisions were made by Rare for BanjoKazooie, DonkeyKong, BanjoTooie, JetForceGemini,
MickeySpeedway, PerfectDark and ConkerBadFurDay.

-ABI2 (or what I'd call NEAD) which was Nintendo Entertainment Analysis & Development exclusive.
There are many versions/revisions in this category (almost one for each game they developed).

This commit try to better identify audio ucodes.
Move BufferSpace to alist.c and alist_internal.h
hleMixerWorkArea doesn't need to be global.
Pack each ucode state into a local structure.
Move each alist_process_* to their respective file.
Move MP3 declaration to ucode3.
Remove uneeded headers.
Rename inst{1,2} to w{1,2}.
Refactor alist interleave commands.
Refactor alist mix commands.
Refactor alist move commands.
Refactor alist load/save commands.
Refactor alist clear commands.
Refactor alist resample commands.
Refactor alist adpcm commands.
Remove uneeded macro.
Refactor alist loadadpcm commands.
Refactor alist setvol commands.
Refactor alist setbuff commands.
Remove some comments.