Support optional keys

Hi,

We have a lot of nagios checks with empty 'notes' which the parser rejects.

This commit is a simple solution to the problem however it greatly loosens the grammar.  I was reluctant to add knowledge of the mandatory keys into the parser but this might be a better solution.

What are your thoughts?

Alison