Support ML2 vlan driver

Provides additional parameters required for configuring the vlan ml2
driver.  Parameters are exposed from the base Neutron classes.

I believe some of the vlan capability was removed as part of the ml2 integration in #69.

We're using this on Ubuntu 14.04 - not tested on Redhat.  If you can suggest the best approach I'm happy to add tests.  The PR doesn't change any default values.

Sample Hiera data:

openstack::neutron_tunneling: false
openstack::neutron_type_drivers: ['vlan']
openstack::neutron_tenant_network_type: ['vlan']
openstack::neutron_tunnel_id_ranges: []
openstack::neutron_bridge_uplinks: ['br-ex:bond1']
openstack::neutron_bridge_mappings: ['default:br-ex']
openstack::neutron_network_vlan_ranges: ['default:80:80']
This causes an error for me if I don't supply any value in hiera:

```
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: join(): Requires array to work with at /etc/puppet/modules/neutron/manifests/agents/ml2/ovs.pp:137 on node compute.localdomain
```

After chasing this for a while, it turns out that the hiera() function, when given a value that isn't in hiera as arg1 and undef as arg2, returns `''`. This is a known won't-fix [issue](https://projects.puppetlabs.com/issues/20923). In most cases in puppet `undef` is functionally equivalent to `''`. However, it gets passed to neutron::agents::ml2::ovs as `''`, which, unlike `undef`, does not override the default value of `[]`. It then gets passed to the join() function [here](https://github.com/stackforge/puppet-neutron/blob/master/manifests/agents/ml2/ovs.pp#L137), gets evaluated as not an array during join()'s error checking, and fails.

This will probably all be fixed in Puppet 4 when the handling of `undef` changes. For now, I think the only way around this is to change this default value to `[]`, which is the same as the default value for $bridge_mappings in neutron::agents::ml2::ovs. What do you think?