Returning 0 isn't all that helpful if we ever have to debug this.
Also added better error handling in general (only report 1 error).
Also made the multipart integration test less noisy.
It's not really boyer-moore anymore, and will suck for the worst-case scenario. However, best-case performance is really good, easily getting 400 mb / sec with a regular-sized boundary.