New attempt at giving user ability to add filters to calendar

Ok, so this is my new attempt to give some organizational capacity to the calendar (and if it makes sense, I'll do the same for the budget) in regards to #105. In the last pull request I just added a select list for taxonomy. This pull requests gives the user the ability to add any number of select elements to the top navigation in the calendar. 

Some example code from a test functions.php that demonstrates how the user can take advantage of new filters and actions, assuming a taxonomy called " *genre* ":

	add_filter('ef_calendar_filter_names', 'add_tax_filter', $filter_names);

	function add_tax_filter($list_of_filters){
		$list_of_filters['genre'] = 'genre';
		return $list_of_filters;
	}

	add_action('ef_calendar_manage_filters', 'genre_selector', 10, 3);

	function genre_selector( $select_id, $select_name, $filters ) {
		if($select_id == "genre") { 
			$terms = get_terms('genre', array('hide_empty' => false));
		?>
			<select id="<?php echo $select_id ?>" name="<?php echo $select_name ?>">
				<option value=""><?php echo _e( 'View all genres', 'edit-flow' ); ?></option>
				<?php
					foreach($terms as $term) 
						echo '<option value="' . esc_attr( $term->slug ) .'" ' . selected( esc_attr($term->slug), $filters[$select_name] ) . ">" . esc_html( $term->name ) . "</option>";
				?>
			</select>
		<?php
		}
	}

	add_filter('ef_calendar_posts_query_args', 'add_genre_query', $args);

	function add_genre_query($args){
		if(!empty($_GET['genre'])){
			$args['tax_query'] = array (
				array (
						'taxonomy' => 'genre',
						'field' => 'slug',
						'terms' => esc_attr($_GET['genre']),
					),
			);
		}
		return $args;
	}

	add_filter('ef_calendar_modify_filters', 'add_genre_var', 10, 2);

	function add_genre_var($filters, $old_filters) {
		$filters['genre'] = isset( $_GET['genre'] ) ? esc_html($_GET['genre']) : $old_filters['genre'];
		return $filters;
	}