Feature/method arguments

* Update function API to require array of optional arguments type syntax.
* Various minor code optimisations and updates.
* Altered manner in which shortcode attributes are extracted from string format into an array syntax.