Issue title: How to hide New button in grid based on value of grid
 Issue body: Hi;

I need your help in how to conditionally check if a grid column has a specific value and if so then hide the New button in the grid.
![image](https://user-images.githubusercontent.com/20435849/86539552-ac583580-bf12-11ea-950a-0b3238d0ccb2.png)

Thank you
 Comments: 
 Comment 0: @ms4hafiz ,

can you give us an example as to when this button should be hidden (or maybe just disabled) and what would be the purpose for this?

(if I understand your request correctly, then - for example - when there is a category name with **seafood**, this button should disappear until this category is renamed or deleted, correct?)

With kind regards,

John
 Comment 1: @JohnRanger 
Thank you for the response
Basically in my project, I have one column DateTo which will not filled at the time of entry and will be filled at a later date.
What I want is to be table to if the DateTo for an existing record in the grid is null, the add button is disabled or hidden. And want this button to be enabled if there DateTo is not blank.

For the above example, we could go for seafood to check if seafood exist then the add button is disabled.

 Comment 2: @ms4hafiz 


If you know the value of of the field - for example you could do this in afterLoadEntity() or by subscribing to the event of rows added .

I see you are using DateTo - so the code below will need to be modified to fit your purpose - but it should do the trick.

**If you choose In your afterLoadEntity** 
```
        protected afterLoadEntity() {
            super.afterLoadEntity();

                for (var k of this.getItems()) {
                    // you could also use match here instead of IndexOf -1 means no match 
                    if (k.CategoryName.indexOf("myValue") != -1) {
                       toggleNewVisibility(true);
                     // exit your for statement here as there is no reason to continue.. 
                       break;
                    }
   }
```
**In your Constructor subscribing to the event of rows added - perhaps when add row is available they add the thing you don't allow **
```
            (this.view as any).onRowCountChanged.subscribe(() => {                
                for (var k of this.getItems()) {
                    // you could also use match here instead of IndexOf -1 means no match 
                    if (k.CategoryName.indexOf("myValue") != -1) {
                       toggleNewVisibility(true);
                     // exit your for statement here as there is no reason to continue.. 
                       break;
                    }
              }
```
**In your XYZ dialog**
```
        public toggleNewVisibility(SetHidden: boolean) {
// var b only used to allow a look see into the object found .
          //  var b = this.toolbar.findButton('add-button');
            this.toolbar.findButton('add-button').toggleClass('disabled', SetHidden);
        }
```
{'source': 'GithubIssues', 'repo_name_with_owner': 'serenity-is/Serenity', 'issue_id': 651120860, 'repo_stars': 2258.0}