Major refactor with parameter functions

- Parameter function CRUD methods now accept the IonObject as a
  parameter
- Preload support for parameter functions is changing
- This is setting up an even bigger refactor with parameter contexts.

This could hurt a bit.
YOU SHOULD NOT SEE THIS COMMIT!

If you see this commit please yell at Luke for being a moron and pushing
it to master without a proper ammend or rebase.

Thanks,
Luke