Add constraint checks to solution

Solution object now checks for hard and soft constraints
sucessfully.