Нормализация возвращаемых значений

Много функций возвращают в разных случаях разные типы, либо вообще ничего не возвращают. Лучше бы для каждой функции было заранее известно, какой тип она вернет и вернет ли вообще. В данной ветке кое-что поправлено, но оставлены без изменений функции типа
```
func(ret){
    if(ret) return ... ;
....
}
```
потому что во всех случаях их использования баги не возможны. Правда, при написании нового кода, используя эти функции, надо будет осторожно следить за вернувшимся типом.