Inline constraints

This one contains all the remaining constraints except the Regex constraint which is not registered to work as inline constraint. I will add it as a separate commit/PR, it needs special handling as it depends on the behavior of not splitting the parameters on a comma. ( The code we had would not work as today we have two constructors for RegexConstraint)..More on this in the PR.
Not too far above 
```c#
 if (constructors.Length == 1 && constructors[0].GetParameters().Length == 1)
  {
     activationConstructor = constructors[0];
     parameters = ConvertArguments(activationConstructor.GetParameters(), new string[] { argumentString });
  }
``` 

This code was added to support regex expressions, however IMHO this is magical, Instead we should do allow the Constraint to handle its own parsing if it so chooses. Since this parsing is only needed by inline constraints, we can add something like 
```c#
public interface IInlineRouteConstraint : IRouteConstraint
    {
        object[] ParseArgumentString(string argumentString);
    }
```

now the default can be what it is today ( purely for backcompat ) but if someone needs to override it, they can.

@yishaigalatzer  @Eilon @rynowak - Comments?