Feature/improve codegeneration

Before this change, endpoints that were removed from newer versions of the REST spec were subsequently removed from the low-level clients generated classes as well.  We need to keep these endpoints in order to maintain backwards compatibility with older versions of elasticsearch.

All endpoints are now kept in the `ApiEndpoints` folder.  This folder always contains the state in which the low-level client was generated from.  Since files are never deleted from this folder, when an endpoint is removed from the REST spec, it's file will still remain.

When `useCache` == `true`, we skip downloading of the REST spec and generate directly from the existing contents of `ApiEndpoints` directory.

This change requires that the `ApiEndpoints` folder and it's contents are always checked in.

**WIP**:  Need to fix build errors in NEST after updating to the 1.4 spec before this can be merged.