More strict checking for isNumber() function and isObject() function

Simple typeof checking is not enough for isNumber and isObject functions. Because typeof NaN == "number" will give true and typeof  [] == "object" also will give true.

I think we need these checks because, the developers who is going to use angular.isObject and angular.isNumber functions will be expecting this.