* Added Max Instances property to Blocks
* eslint cleanup
* eslint cleanup 2
* Moved maxInstances property from block to workspace (as a map of block type to max instances). isDuplicate() changed to correctly handle siblings/branches.
* eslint cleanup
* Changed checking types to map. Added hasBlockLimits. Fixed Nits.
* Added limit_instances test block. eslint fixes.
* fixup! Added limit_instances test block. eslint fixes.
* Changed sorting objects to a private static function of the workspace. Fixed nits. Undeleted .eslintrc
* Reverted .gitignore file.
* Added getBlockTypeCounts() to utils. Added isCapacityAvailable() to workspace. Changed clipboard to save typeCountsMap rather than object.
Originally flyouts had ‘blocks’ and rectangular hidden ’buttons’
underneath the blocks. When UI buttons were added to flyounts, there
was a terminology collision. This change renames the original
background ‘buttons’ to ‘mats’. As in placemats or door mats.
* Fix wrong width of field_dropdown with an image on Edge / IE
* Avoid re-rendering on IE and Edge by using getBBox().width to compute the text width on those browsers
* Rename flyout to flyout_base
* flyout_base minus horizontal and vertical code
* Add flyout_vertical and flyout_horizontal
* review fixes + toolbox and workspace use
* Fix hat block case
* rebuild uncompressed
* Fix travis problem
* Fix build problem