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
reformat and psr4 autoload without breaking tests
refactor switch case and uniplemented interface
bootstrap added for test cases
removing unused test cases
proper unit test
Merge pull request #5 from rajibmp/1.x

Reformat
Renamed directory 'lib' to 'src'.
Corrected switch case conditions.
Fixed whitespaces.
Merge branch '1.x'