Fix for #640, Allow default values for parameters to contain brackets

I'm not sure if JSDoc wants to get in the business of parsing the `defaultvalue` of a parameter, but since the delimiter for an optional argument can appear inside of a `defaultvalue`, that's sort of what this patch does. 

This "parsing" consists of matching brackets until we match the first one. We ignore brackets inside of strings. If the parse finishes without matching the first bracket or inside of a string, we fall back to the original regex-based solution.

I've added some tests in `test/specs/jsdoc/name.js` that failed before this patch and now succeed.