allow setting type to nil

Conflicts:
	lib/mustermann.rb
add beginning and end tracking to ast nodes

Conflicts:
	lib/mustermann/ast/node.rb
	lib/mustermann/ast/pattern.rb
add mustermann-visualizer

Conflicts:
	README.md
	lib/mustermann.rb
	lib/mustermann/ast/tree_renderer.rb
	lib/mustermann/pyramid.rb
	lib/mustermann/shell.rb
	lib/mustermann/simple.rb

Also, picked some parts from 3f97a6ac4516c60684df532c160d3ab5608cb470
support multiple rails versions

Conflicts:
	Rakefile
	mustermann-rails/README.md
	mustermann-uri-template/README.md
	mustermann/lib/mustermann/ast/compiler.rb
	spec/support/env.rb
Sinatra 2.0 syntax: allow | outside of parens, see #31

Conflicts:
	mustermann-visualizer/spec/visualizer_spec.rb
	mustermann/README.md
add commented out code for fixing | in rails
LoadError#path is not available on ruby 1.9
Error message is different in jruby and MRI
File.fnmatch?'s behavior is incorrect on jruby