How can I get an empty region not to render in a field_layout template?
Use this syntax:

{% if content.sidebar %}
  &lt;div class="layout-region layout-region--sidebar col-sm-4"&gt;
    {{ content.sidebar }}
 &lt;/div&gt;
{% endif %}


It will remove all HTML (such as the s that appear even if the section is empty and then only display if there is some non-HTML present.

NOTE: This will not work properly if a region contains only HTML tags, such as Search Facets that are completely made up of  options. The striptags call will remove everything from these regions, making them appear to be empty and preventing your facets from showing

See also the discussion here: [meta] Themes improperly check renderable arrays when determining visibility.