Better parsing of args + cleanup

The current situation: 
* keeping track of what args are available/required by each field is not easy. Relies on wiki being up to date.
* Some args are available to all fields, some are a specific to individual fields. Need to keep track of this too. 
* Also - there aren't enough checks in place - so its easy to miss required args and use unsupported args.
* In the future it would be nice for more things to be customisabile - all strings for example. I think it would be best to specify these in a list of default args for each field.

This PR is a general cleanup of the whole field args situation.

* Abstract class has an array of generic args available to all fields.
* Each field can then provide field specific args.
* When instantiating a class - use wp_parse_args
* Fire deprecated notice if using args that are not supported - to avoid confusion.
* Removal and cleanup of args. Some are old. Some are just mapped to another value. Remove a lot of the need for checking whether args are set

The only think i'm not so sure about is that deprecated notices are fired - whilst it won't break anything it  could potentially cause annoyance with custom field types etc. Might be easier to remove this.

I'm going to do some further testing to ensure that this isn't breaking anything.
Yeah you're right.

Actually I think this code can be removed. it must be a legacy thing. It appears that it is allowing you to set repeatable on the meta box rather than for individual fields, which will in turn apply it to all fields in that meta box. 

Seems a bit wierd to me. I tried to look into why this was added and it seems it originated before we forked the project - so I don't think there should be backwards compatablity issues as we don't support compatability with the original project.