Added better support for jsdoc tags

Hi there

Great library! This is perfect for use in static site generators where I currently also created a plugin (for assemble.io https://www.npmjs.org/package/assemble-dox )

I always hoped to use some more complex JSdoc annotations / types tag in dox, so I've created this pull request. Basically it changes the parsing a bit to make it more robust for complex types and white spaces. Then it uses a parser / lexer module to parse the JSDoc tag type strings. As a side effect there is now also support for nullable, non-nullable, vairable and optional on param, return, throws and type tags. Also there is a new typesDescription field on the tag objects that contains an HTML formatted type string.

I've updated the existing tests slightly (i think there was a wrong handling with the `?` sign which is for flagging nullable and not optional) and also added new tests. I've also update the documentation.

This PR solves #135 and #82.

Hope I got the whole picture here and didn't miss anything.

Cheers
Gion