Amanda v0.4.0

Hi everyone!

I would like to introduce you the latest version of [Amanda](https://github.com/Baggz/Amanda) (v0.4.0). 

First change (and probably the most important) is a **change in the direction**. Amanda is no longer just a validation library for JSON Schema. It's aiming to be **an universal validation library**, currently it supports only the [JSON Schema Internet Draft](http://tools.ietf.org/html/draft-zyp-json-schema-03), but I'm planning to add [Orderly](http://orderly-json.org/), [Relax NG](http://relaxng.org/) and others very soon.

## Compliant with the JSON Schema Internet Draft

Amanda is now more compliant with the [JSON Schema Internet Draft](http://tools.ietf.org/html/draft-zyp-json-schema-03). I have added new attributes.

* [additionalProperties](https://github.com/Baggz/Amanda/blob/dev/src/engines/json/attributes/additionalProperties.js#L4)
* [additionaltems](https://github.com/Baggz/Amanda/blob/dev/src/engines/json/validateItems.js#L31-67)
* [dependencies](https://github.com/Baggz/Amanda/blob/dev/src/engines/json/attributes/dependencies.js#L6)
* [patternProperties](https://github.com/Baggz/Amanda/blob/dev/src/engines/json/attributes/patternProperties.js#L6)
* [uniqueItems](https://github.com/Baggz/Amanda/blob/dev/src/engines/json/attributes/uniqueItems.js#L6)
* ...and others.

Also the `format` attribute supports all formats defined by the [JSON Schema Internet Draft](http://tools.ietf.org/html/draft-zyp-json-schema-03) plus some custom formats like `alpha`, `alphanumeric`, `decimal`, `percentage` and others.

Another notable change is that **validators has been renamed to attributes**. Instead of calling the `addValidator` method, please use the `addAttribute` method. This changes also applies to the `Error` object.

## Attributes API

The thing I'm the most excited about is **enhanced attributes API**. You already know you can add a custom attribute.

```javascript
var myValidator = amanda('json');

/**
 * MyAttribute
 */
var myAttribute = function(property, propertyValue, attributeValue, propertyAttributes, callback) {
  // Do something...
};

myValidator.addAttribute('test', myAttribute);
```

But with the new **enhanced attributes API**... Attributes are more powerful! Attributes have an access to the **internal API** (via `this` keyword).

* [validateItems](https://github.com/Baggz/Amanda/blob/dev/src/engines/json/validateItems.js#L9),
* [validateProperties](https://github.com/Baggz/Amanda/blob/dev/src/engines/json/validateProperties.js#L9)
* [validateSchema](https://github.com/Baggz/Amanda/blob/dev/src/engines/json/validateSchema.js#L9)
* [validateProperty](https://github.com/Baggz/Amanda/blob/dev/src/engines/json/validateProperty.js#L10)
* [getProperty](https://github.com/Baggz/Amanda/blob/dev/src/engines/json/getProperty.js#L7)
* [joinPath](https://github.com/Baggz/Amanda/blob/dev/src/engines/json/joinPath.js#L7) and others.

The same applies for **internal properties**.

* An instance (`this.instance`)
* A schema (`this.schema`)
* An `Error` object (`this.errors`)
* All the attributes (`this.attributes`)

Again, all these methods and properties are available under the `this` keyword.

## Documentation

The documentation has been completely revamped. It could be found in the [/docs/](https://github.com/Baggz/Amanda/tree/dev/docs) folder. To be noted, the documentation is not complete yet.

## Tests

All tests have been rewritten into [Mocha](https://github.com/visionmedia/mocha) in order to test the library in the browser.

## Error Messages

More accurate error messages, that's it.

## Build

Amanda was separated into multiple files. I hope you and the ‘make’ command get along well.

## Conclusion

Although I was trying hard to not break the current API, in some cases it could happen. Please keep this in mind.