* Changed REGISTER_NAMED macro so that the prototype constructor   is static, so that there won't be duplicate definitions of it if   the library that includes the registration is included in multiple   libraries being linked in the final executable.
* Changed REGISTER_NAMED macro so that the prototype constructor
  is static, so that there won't be duplicate definitions of it if
  the library that includes the registration is included in multiple
  libraries being linked in the final executable.

* Moved the definition of the static data member Factory<T>::cons_table_
  to be in factory.h instead of in the IMPLEMENT_FACTORY macro, since the
  compiler is guaranteed to remove duplicate static template member
  definitions when they are templated.

google/infact,julianromera/infact,alex-quiterio/infact,google/infact,alex-quiterio/infact,julianromera/infact,alex-quiterio/infact,julianromera/infact,alex-quiterio/infact,julianromera/infact,alex-quiterio/infact,julianromera/infact