Issue title: [ERROR] loading parameter file failed with 'IO_ERROR' - Android
 Issue body: I'm trying to implement this library in Android.
Here's my code:
**onCreate()**
```
copyPorcupineConfigFiles(this);
        String keywordFilePath = new File(this.getFilesDir(), "francesca.ppn")
                .getAbsolutePath();
        String modelFilePath = new File(this.getFilesDir(), "params.pv").getAbsolutePath();
        try {
            manager = new PorcupineManager(modelFilePath, keywordFilePath, sensitivity, new KeywordCallback() {
                @Override
                public void run(int keyword_index) {
                    Toast.makeText(MainActivity.this, "Detected!", Toast.LENGTH_LONG).show();
                }
            });
            manager.start();
        } catch (PorcupineManagerException e) {
            e.printStackTrace();
        }
```
`**copyPorcupineConfigFiles()**`
```
private static void copyPorcupineConfigFiles(Context context) {
        int[] resIds = {R.raw.francesca, R.raw.params};
        Resources resources = context.getResources();
        for (int resId : resIds) {
            String filename = resources.getResourceEntryName(resId);
            String fileExtension = resId == R.raw.params ? ".pv" : ".ppn";
            InputStream is = null;
            OutputStream os = null;
            try {
                is = new BufferedInputStream(resources.openRawResource(resId),
                        256);
                os = new BufferedOutputStream(context.openFileOutput(filename + fileExtension,
                        Context.MODE_PRIVATE), 256);
                int r;
                while ((r = is.read()) != -1) {
                    os.write(r);
                }
                os.flush();
            } catch (IOException e) {
                Toast.makeText(context, "Error!", Toast.LENGTH_SHORT).show();
            } finally {
                try {
                    if (is != null) {
                        is.close();
                    }
                    if (os != null) {
                        os.close();
                    }
                } catch (IOException e) {
                    Toast.makeText(context, "Error!", Toast.LENGTH_SHORT).show();
                }
            }
        }
    }
```

`keywordFilePath` is `/data/user/0/com.package.name/files/francesca.ppn`
`modelFilePath` is `/data/user/0/com.alibdeir.starch/files/params.pv`

Both paths are correct.

When I run, I get this Porcupine error:
```
07-30 17:36:51.343 18194-18194/? I/PORCUPINE: [ERROR] loading parameter file failed with 'IO_ERROR'
07-30 17:36:51.345 18194-18194/? W/System.err: ai.picovoice.porcupinemanager.PorcupineManagerException: ai.picovoice.porcupine.PorcupineException: java.io.IOException: Initialization of Porcupine failed.
```

 Comments: 
 Comment 0: Why are the model and keyword files in different folders? Can you open and read the keyword file from the main activity?
 Comment 1: @kenarsa Woops, sorry, they *are* in the same folder. I edited my post.
 Comment 2: Can you open and read the keyword file from the main activity?
 Comment 3: Yes.
 Comment 4: please share the code that you used for opening/reading the file in your main activity. also the size of the file and its content. then I might be able to help you debug this ...
 Comment 5:     private void readFile() throws IOException {
        FileInputStream fis = openFileInput("params.pv");
        InputStreamReader isr = new InputStreamReader(fis);
        BufferedReader bufferedReader = new BufferedReader(isr);
        StringBuilder sb = new StringBuilder();
        String line1;
        while ((line1 = bufferedReader.readLine()) != null) {
            sb.append(line1);
        }

//        System.out.println("contents:"+sb.toString());
        Log.d("readfile","Contents: " + sb.toString());
    }

^ This reads successfully. 


[params.zip](https://github.com/Picovoice/Porcupine/files/2247891/params.zip)

^ this zip contains the params.pv file, the size of the file is 1.3MB
 Comment 6: Can you do the same for keyword file? Seems like that is the problematic one.
 Comment 7: Yes, I can read the keyword file too. Here's the keyword file:
[francesca.zip](https://github.com/Picovoice/Porcupine/files/2250913/francesca.zip)

 Comment 8: Is the ".zip" file created by the code-snippet above?

I am fairly certain that either (1) the keyword file is not in the correct location or (2) for some reason it is corrupted. I am trying to help you out to find the root cause. But my ability to do so is also limited. I suggest working in that direction. For example when the path is passed to PorcupineManager here https://github.com/Picovoice/Porcupine/blob/08f7373bc7a6207ee4a2ffeeba9b302a990d9111/demo/android/app/src/main/java/ai/picovoice/porcupine/demo/MainActivity.java#L104

use that exact variable to open a file and read that instead of using "openFileInput". Hope it helps.

 Comment 9: > Is the ".zip" file created by the code-snippet above?

No.

I will check to see, thanks!
 Comment 10: closing due to inactivity.
{'source': 'GithubIssues', 'repo_name_with_owner': 'Picovoice/Porcupine', 'issue_id': 345816149, 'repo_stars': 1684.0}