Improve argument handling for shortcodes

Wordpress already has a function (`wp_parse_args`) to handle what was originally a re-implementation of PHP's `array_merge`. For simplicity and to reduce redundancy, I replaced the old loop with the wordpress-specific argument-set merging function.