Separate logic of contract creation

The method build_from_file constructing a new Contract and is not
related with the other methods in Pacto module.
The idea is to separate what is construction of a contract from what is
using the contract.

Keeping consistency with the idea that the module Pacto is the public
interface that hides the details of the implementation. In this case
ContractFactory is a implementation detail that is not needed to
expose to the public interface.