Modify code generation to persist removed endpoints

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.
Checking in current endpoint json files
Low-level client now generated from the 1.4 spec
fixed build but bwc questions remain
Merge pull request #1082 from elasticsearch/feature/improve-codegeneration

Feature/improve codegeneration