Support for multiple attributes

This PR adds support for a `multiple: true` attribute which allows the caller to add several options with the same name, and have them sent as an array. As seen in `test/tests.js`:

* Spec: `meta: {key: 'm', args: 1, multiple: true}`.
* Invocation: `node program.js -m 1 -m 2 -m3`.
* Result: `{ meta: ['1', '2', '3'] }`

Multiple options with many attributes don't make much sense, but they would all be included in the same array. Multiple options without attributes don't make any sense at all.