Add new methods to objects, collections and dictionaries

* tap - Calls the function with the object, and then returns object
* pick - Returns a new Dictionary only with choosen keys
* omit - Returns a new Dictionary without omited keys
* merge - Returns a new Dictionary with merged values
* keys - Returns an Array instead of MapCollectionView
* values - Returns an Array instead of MapCollectionView
Let make merge take a variadic parameter for dictionaries to merge. Kind of like extend in lodash or underscore.