Правильно ли использовать Singleton для класса БД и шаблонизатора?
Нет. 
Читайте про DI. 
Чем плохо всё остальное:github.com/codedokode/pasta/blob/master/arch/di.md
Реализации на PHP:github.com/ziadoz/awesome-php#dependency-injection.
Можно.
Нет ничего плохого иметь глобальную ссылку на доступ к базе.