WIP
Merge branch 'master' into finalizer

Conflicts:
	lib/virtus/attribute/builder.rb
	lib/virtus/attribute/embedded_value.rb
Merge branch 'master' into finalizer
Mark finalize spec as pending
Extract determining primitive into a TypeDefinition class
Use type definition when building type instance
Add support for :finalize option

When :finalize option is set to false attributes will not be
automatically finalized, which means their types will not be inferred.

This should be used only when there's a circular dependency issue when
one type references another type which is not yet defined.

closes #81