New Feature: Ordered Properties

With this feature it's now possible to add an attribute called YamlOrder(int) on properties.

The properties are sorted by the order value (then by name) in the serialized output.

Example:

```csharp
public class OrderExample
{
    public OrderExample()
    {
        this.Order1 = "Order1 value";
        this.Order2 = "Order2 value";
    }

    [YamlOrder(2)]
    public String Order2 { get; set; }

    [YamlOrder(1)]
    public String Order1 { get; set; }
}
```

Yaml Output:
```yaml
Order1: Order1 value
Order2: Order2 value
```