mainly changed functions with user input (except password-related ones since i don't know how to apply it to those) to use a different method for repeating questions to fix the issue of commands repeating if incorrect answers were given before a correct one (this is the reason why the password selection functions use while loops for incorrect answers instead of re-running the function). the method used is described in this StackExchange answer: https://unix.stackexchange.com/a/268769
use the right var when checking if the selected keymap exists, don't skip prompt for keyboard layout if the user entered "/" and don't include the installation of the keymap/locale in the selection functions since no subvolumes are mounted when they're called
sed expressions using the a, c or i commands cant be separated with ; and require a newline or -e to do so instead. since the ILoveCandy is the only expression in the sequence that uses one of those commands i just moved it to the end which seemed to fix the problem. also shortened the parallel downloads sed. chaining expressions is addressed in section 3.8.1 of the gnu sed manual
edited some functions related to user input so that their formatting/installing won't take place until after questions are over to prevent having to wait in between questions. also moved the order of the microcode virt check functions run to prevent installing stuff before questions are over, and some other funcs to just be more convenient (keyboard layout is now selected first incase the user isn't using US qwerty) and now there are options to search for locales and keymaps before making a selection.
Verify LUKS password (code from [here](https://stackoverflow.com/a/22249163)), prompt for user password at beginning of script, enable pacman parallel downloading, only show stderr during pacstraps and avoid reinstalling packages.