Как закрыть блок при нажатии на любое место?
Не уверен, что понял правильно, но смог набросать решение первого и третьего вопроса (второй бы занял чуточку extra-времени). 

snippet

Вообще советую Вам почитать про делегирование событий Propagation, фазы захвата (баблинг, таргетинг и так далее) и capturing.
Все эти вопросы смотрят лицом сюда https://vk.cc/4BIJUG

1. По событию мыши просто добавляй класс или рисуй элемент (createElement()).
2. Ответ по ссылке, всплытие и перехват. Но оптимально и просто — по клику очищать все вхождения (соседние) от класса active и добавлять его через event.target.
3. Ответ по ссылке. Это называется миссклик (в смысле так его гуглить можно, это термин).