I would recommend adopting more modern coding guidelines and techniques i.e. DI instead of singletons. When you are writing your own framework I would highly encourage looking at other frameworks to learn from them.
Well, I would (should) change the database class and router to be DI, but as for the other (few) singletons, they aren't used that much and are only sprinkled in places. I prefer the cleaner look with lazy-loading, just my opinion...