Über Binding PartI : Adding support for property level binding using IBinderMetadata

Hmm. consider the following scenario
```c#
void Action(Company c)

class Company
{
       public Department Department { get; set; }
}

public class Department
{
       [NonExistingMarker("Location")]
       public Department{ get; set; }

       [FromHeader("DepartmentId")]
       public DepartmentId { get; set; }
}
```
In the above scenario, since Department is a Marker POCO ( all properties are  marked to use a BinderMetadataAwareBinder), it will drill into c.Department, when it gets to the department property, 
since that property is bound with a marker which is not understood by any of our model binders, it will finally come to Mutable object binder which will attempt to create Department again because it is a marker POCO. 
This creates infinite recursion. 
Should we solve it ? 
         The assumption is if there is an attribute which represents a non value provider based BinderMetdata, there should ALWAYS be a corresponding model binder which understands that BinderMetadata. IMHO If a user breaks this assumption then they should get an exception rather than the framework handling this. I would vote for detecting this case and throwing explicitly in MutableObjectBinder.   
@yishaigalatzer @loudej opinions?