Performance & user experiment improvement

1.Wait until user has finished entering before sending search request in order to reduce server's workload
2.By removing the second loop, the server's response time has been reduced by up to 95%
3.Adding a static function countAllByFilter($graph_id, $filter) which returns the number of Lines which pass the filter on Target and Alias for a given Graph
4.Adding a static function countAllByFilter($dashboard_id, $filter) which returns the number of Graphs which pass the filter on Name, Vtitle and Description for a given Dashboard
5.Dead codes removed
6.Case-insensitive search
7.Minor corrections
8.No request is sent if entered text's length is less than 3
9.The original table is only hidden when a request has been sent, and will reappear when the search input becomes empty again
10.The table for search results is hidden by default, it shows when a request has been sent, and will be hidden again if user empties the search input. This means if user re-enters the same text once again, no request will be sent since the same hidden table will be shown
11.Text used for latest SENT request is temporarily saved in order not to send twice the same request. This means if user re-enters the exact same text after having emptied the input, no request need to be sent since the results were only hidden and can be re-shown immediately
12.Bubbles indicating number of Graphs/Lines passing the filter are removed from the original table
13.A loader is shown when search results are being fetched from the server