Dependency and NepaliCalendar::getDate() type checking improvements

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

Quick and dirty solution for passing the tests later you can mock the objects and update the tests.
Merge pull request #1 from surajprogrammez/patch-1

Dependency and NepaliCalendar::getDate() type checking improvements