Added default handling for tags

#62 is very simple, just adding support for aliases for existing functionality so that `@returns` behaves the same as `@return` etc.

This PR is a little bit bolder, and I've only done rudimentary testing with it, but it treats any tag it doesn't recognise in a similar way to `param` or `return` accepting a type and a description, and using the tag as the name so you get something like:

`@typedef {String} I am a description`

**typedef**
  *String* I am a description


closes #45