Add LocalValidator and RemoteValidator base classes and Uniqueness validator

The RemoteValidator class requires validators that inherit from it to overwrite the default `call` function. The `call` function should implement an ajax call and pass in `this.options` as it's arguments. The `call` function should also handle clearing and adding errors based on the response from the server. See example: https://github.com/dockyard/ember-validations/pull/117/files#diff-c9875bc6e129a611ffcdf206f262d01dR25 

Validators that inherit from RemoteValidator can optionally override the `setDefaultOptions` function to set default options parameters (Eg: set the default error message, set a default api endpoint where the validation will take place).

Remote validations can be declared by passing in `true` (if all required options have been set in the `setDefaultOptions` function) or as a function that returns a hash of options. Eg:
```javascript
  email: {
    uniqueness: true // This currently doesn't work - there isn't a default url for uniqueness validation yet
  }
```
or
```javascript
  email: {
    uniqueness: function() {
      return {
        url: '/api/v1/uniqueness',
        debounce: 500,
        message: "you've been blacklisted...",
        errorOnStatus: [404, 422, 500],    // Defaults to [404, 422, 500]. Can override with array or integer
        data: {
          email: this.get('email'),
          name: this.get('name')
        }
      }
    }
  }
```

The reason for declaring the validation as a function rather than a hash is so we can pass in something like `this.get('email')` and have the value be evaluated dynamically.