Better ajax error messages

We'll now return JSON response for 500 errors if the request is expecting JS. This allows our JS to inspect the error message and display a customized error message to the user based on the error. We know have 4 different error message (previously just one) for Ajax errors that happen in voting, skipping, flagging, or adding an idea.