Huge commit

Пока что готов FileMap и Shell, код настолько универсальный для них
обоих, насколько возможно. Запускать нужно filemap_v2 и shell_v2.