Add first version of new input implementation.
Add factory for fields.
Add new Input::Factory class.
Remove old factory for Fields.

- only deleting unused files.
Add instantiation of factory in field module.
Optimization of Input Factory class.

- use templating of Factory
- use in fields module
Add unit test of templated factory.
Remove unused files.
Factory: Proposed passing of arguments to constructor.
Add passing of arguments to factory.

- add methods for passing of arguments
- modification of unit test
Hints for further developement.
Optimization of Input::Factory.

- changes and simplification of registration methods
- prepare for remove Registrar class
- modification of factory unit test
Remove Input::Registrar class.
Optimization of factory unit test.
Use factory in Input::AbstractRecord.

- add method created object for AbstractRecord
- new unit test of this functionality
Documentation of Input::Factory.
Hints for further developement.

- usage of AbstractRecords::factory should be templated only
  by requested base type, and should not use explicit get()
  method of the shared pointer
- Creater template for register constructors with parameters
- Factory should by templated by Arguments of the constructor
- specialized template for default constructors
Modify of usage variadic templates of factory.
Add error message to factory.

- add user error if class of given name doesn't exist in factory.
Small optimization of class Factory.

- changes in unit test
- remarks to further development