Extend Builder with attribute accessors

Allows values to be read from the builder during construction and after being coerced.  For example:

``` ruby
class Foo
   extend Assembler
   assemble_from_options :number, coerce: :to_i
   assemble_from name: nil, name_prefix: 'prefix', bignumber: false
end
Foo.new(number: '10') do |foo|
  foo.bignumber = true if foo.bar > 5
  foo.name ||= "#{foo.name_prefix}_suffix"
end
```

This should allow us to do some really neat stuff around conditional assignment and input munging