Version 2.0

Big refactor, turned out basically the same.

  - No more global error states (yay!)
  - Added `Ficus.load` so configs can be read from a string (Issue #6)
  - basic type checking (`:number`, `:string`, `:boolean`) (Issue #11)
  - full feature parity with 1.0
So, I know this might be out of scope here, but what do you think about syntax like this, which would enable validation of multiple files, separation of "result" from the "ficus" object, and reuse of ficus objects to validate multiple configurations?

```ruby
ficus = Ficus.new do 
  # ficus DSL goes here
end

errors1 = ficus.validate(string)
errors2 = ficus.validate_file(filename)
```

I like the separation of the "ficus" object from the "result" that this provides. 

Another thing to consider is: I believe you wanted to eventually read the ficus DSL itself from a file, right, rather than embedding it in ruby code? Do you have thoughts about what syntax to use there?