Reduce update() iterations
New section redirects

Allows redirection of specified route patterns to a url or route.
Fix missing newlines after template expansion

Before this commit the following code:

	$template = "{{ @foo }}\nbar\n";
	var_dump(Preview::instance()->resolve($template, array('foo' => 'bar')));

Would output:

	string(7) "barbar\n"

This is because the template expander will replace “{{ … }}” with “<?php … ?>” and when such tags are followed by a newline, the PHP preprocessor omits it.

Since the template engine is mentioned as useful for generating emails, the newline stripping behavior is undesired and should not be inherited from PHP.
Merge pull request #633 from bondz/dev

Function to redirect routes
fix beforeupdate position, #633

this reverts the change introduced in #633 which was inadvertently added. see
https://github.com/bcosca/fatfree/pull/633#commitcomment-6805651
Merge pull request #642 from ikkez/fix-633

fix beforeupdate position, #633
fix exists() return value for cached keys
clean up
fix missing error code in unload handler
add input name parameter to custom slug function
Merge pull request #644 from ikkez/fix-cache-exists

fix exists() return value for cached keys
Merge pull request #640 from sorbits/fix-missing-newline

Fix missing newlines after template expansion
Clean up code
Adjust unit tests and clean up templates
Merge pull request #649 from ikkez/fix-unload

fix missing error code in unload handler
Merge pull request #650 from ikkez/web-receive

[web->receive] add input name parameter to custom slug function
Bug fix: OR operator (||) parsed incorrectly
fix routing issue, bcosca/fatfree#645
this reverts the code back before commit https://github.com/bcosca/fatfree/commit/edc4d41cf75fdef16811a14c274d733beabb49cd
Merge pull request #651 from ikkez/fix-routing-645

fix routing issue
Update contributors' list