Issue title: Semantic Versioning Guidelines.
 Issue body: According to semantic versioning guidelines, a patch release (`<major>.<minor>.<patch>`) - what you just pushed 2.2.7 - is not supposed to break compatibility. Cocoapods follows these guidelines too so when you push a patch release and the user has the following Podfile config: `pod 'ObjectMapper', '~> 2.2.6'`, Cocoapods will automatically update the pod.

> At some point the dev is finished on the client work (or a newer version of the lib changes the API and the changes aren’t needed) so the dev adds a version requirement to the dependency. For instance, consider that the author of the lib follows the semver guidelines, you can somewhat trust that between ‘1.0.7’ and ‘1.1.0’ no API changes will be made, but only bug fixes. So instead of requiring a specific version, the dev can specify that any ‘1.0.x’ is allowed as long as it’s higher than ‘1.0.7’:



I would ask that you abide by these guidelines in future so you don't stop users' projects from compiling 😄 . 
 Comments: 
 Comment 0: Oh my bad, I did not expect this release to have any breaking changes. Can you please let me know what the breaking change in your code was?
 Comment 1: Ah I think I know. The `mapArray` function...
 Comment 2: It's no biggie. Sorry if it sounded pretentious or ungrateful there I was just trying to let you know but github doesn't have dm lol.

You changed the optional status of the return value of the `mapArray` function.

    public func mapArray(JSONArray: [[String: Any]]) -> [N] {
		// map every element in JSON array to type N
		let result = JSONArray.flatMap(map)
		return result
	}

Thanks for all your hard work
{'source': 'GithubIssues', 'repo_name_with_owner': 'Hearst-DD/ObjectMapper', 'issue_id': 231711982, 'repo_stars': 7939.0}