Add "optional hint" to tell the logger to ignore that property when emitting it

As spurred by the discussion here: https://groups.google.com/forum/#!topic/serilog/O0mSN0au9Pg

Added an "optional hint" to allow for the PropertyToken emitter to "ignore" the parameter if the property is null.

Example usage:
```Log.Information("{?Property1:[0] }{Property2}", new { Property2 = "Value2"});```
```Log.Information("{?Property1:[0] }{Property2}", new { Property1 = 123, Property2 = "Value2"});```
Will output:
`"Value2"`
`[123] "Value2"`

Note: The usage of the inner formatter to deal with the issue of leading spaces etc. Which could also be used just as a boolean nullity check ala:
```Log.Information("{?Property1:Property1 is not null }{Property2}", new { Property2 = "Value2"});```
Which will output: `Property 1 is not null "Value2"`