Dependency and NepaliCalendar::getDate() type checking improvements

I've added type hinting for Dependency Injection and a switch case to Improve type checking