LIVEOAK-173 Consolidate ObjectMapper uses
 - Add decode(File) to JSONDecoder and refactor to minimise repitition between different input streams to be converted
 - Update ApplicationService, and related child services, to use JSONDecoder to decode a file instead of ObjectMapper.
 - Add extend(String resourceId, ResourceState state) to InternalApplication and ensure that ApplicationResourcesService and ApplicationExtensionsResource both use it to create a new resource