Check if the args is a valid JSON object

* Since args has `id` as type we need to ensure that is a valid JSON,
otherwise an exception will be thrown.
* It also add an enum for the error code
Check that the error's indirect pointer is valid
Add .DS_Store to gitignore
The JSON validity check should be done on the whole message not just the args
Change the data from NSMutableDictionary to NSDictionary

There is no need to use a mutable version. (Check using the provided
test suite and there is no regression)
Merge pull request #7 from lukabernardi/master

Check if the args is a valid JSON object