Batch tests

based on discussions at rvagg/memdown#16 some additional tests on the arguments passed to batch, also adds a test for when the location argument to the constructor is present but isn't a string, fixes to the actual code based on the new tests are

- it not only checks if the options to bulk are an object, but checks that it's truthy as well, previously nulls would be passed through
- if callback is provided but an array is not then instead of sync throwing an error about a missing callback, it now calls the callback with an error about a missing array.