Better handle errors when using callbacks

`Meteor.Error` should get a numeric value for the first argument. And if callback is provided you should not be throwing an exception, user does not get any feedback (upload just gets stuck) and Meteor logs a strange error into the console, hard to understand why it failed.