How to Disable new terms (free tagging) with Taxonomies? I have a "term reference" field, in a form that uses an auto-complete widget.
I want to limit user input to terms in the vocabulary only, and output a message when a user tries to enter a non existing term.

I found the Content taxonomy module. However this does not work with forms that contain a field collection or a field group.

There is also a contributed patch 1078878-DisableAutoCreation-D7-UTF-8.patch. But I was wondering whether there was a simpler/cleaner solution like a module or maybe I missed an already existing way of doing it with latest drupal and taxonomy versions.
There seem to be two possible solutions which are mentioned here http://fooninja.net/2012/08/03/drupal-autocomplete-term-widget-disable-creation/ and you have also mentioned them in your question.

Excerpt from the post,


  There are in fact two solutions. One is the Content Taxonomy
  module. However, I didn’t feel like installing yet another module
  for such a simple thing. The second solution is patching the core
  taxonomy module:
  
  A kind soul on the Drupal forum, j.stuyts, posted a small patch
  that adds an option to disallow autocreation. All you need to do is
  download the patch (1078878-DisableAutoCreation-D7-UTF-8.patch)
  to the Drupal 7 root directory and run.
  
  If you then go to Structure » Content types » [Your content type] and
  edit a Term reference field that uses the Autocomplete term widget,
  you’ll see a new option at the bottom: “Allow autocreation of new
  terms” (checked by default).


Although hacking in core is never recommended but you can use patch till the time you get better solution.