* Implement ValidateMapCtx func for validating map data
* Add ValidateMap func for validating map data with an empty context
* Implement a basic example of ValidateMap method
* Update ValidateMapCtx method, so it can validate nested maps
* Due to changes in ValidateMapCtx, make some updates on ValidateMap method
* Update tests due to changes in ValidateMap method
* Create a basic test for validating nested maps
* Handle error when invalid data is supplied for diving