added error handling for map class

Added MapError exception class and the _validate_dimension method which
is used to validate the width and height values in the map __init__
method