mw.Map: Avoid using 'undefined' to check for real existance.

Instead use hasOwnProperty or arguments.length when checking
for existance of object propertys and arguments respectively.

That way the following work as expected:

var a = new mw.Map();

a.get( 'constructor' );
// Should be `null`
// Was `function Object() { [native code] }

a.get( 'something', undefined );
// Should be `undefined`
// Was `null`

Bug: 45330
Bug: 45331
Change-Id: I035e23f700e2120618ed4fbe5ce95c7f9b947e41
Merge "mw.Map: Avoid using 'undefined' to check for real existance."