BatchProcessor fixes and improvements

- added the ability to complete units of work without a result
- fixed an issue where if (error) check could not be used on batch processor completion block if no errors occurred.