Fix @property regressions introduces by UDA module update
Merge pull request #369 from Dicebot/uda-rest-test-fix

Fix @property regressions introduces by UDA module update
Add draft of a unified serialization system that passes the existing unit tests. API is subject to change!

The usual `(de)serialize(B/J)son` can be switched to the new system using -version=VibeNewSerialization.

Notable features
 - Unifies handling of UDAs and handling of non-primitive types, such as structs or arrays
 - Adds support for @ignore, @optional @name(string) and @byName
 - BsonSerializer builds an efficient O(n) in-memory representation using an Appender instead of the old inefficient serializer
 - JsonStringSerializer supports allocation-less serialization of JSON data by outputting to an output range.
 - JsonStringSerializer also supports allocation-less deserialization for simple struct hierarchies (no dynamic arrays, associative arrays, classes or Json values)
Add a simple ProxyStream class to be able to dynamically switch underlying streams.
Add a StreamInputRange wrapper.
Rename vibe.stream.proxy to vibe.stream.wrapper.
Add range based overloads of (de)serialize(To)Json and "rangeify" helper functions for JSON parsing.
Let HTTPServerResponse.writeJsonBody use range based serialization to avoid memory allocations.
Remove unused private function.
Fix the compatibility handling of "id" parameters to match between client and server and fix concatURL.

Also add unit tests for concatURL to specify the expected behavior and fix #line statements.
Let HTTPClientRequest.writeJsonBody use range based serialization to avoid memory allocations.
Implement pretty JSON string serialization.
Add (de)serialization example.
Fix compilation on DMD 2.063.2 by avoiding the new enum template syntax. Fixes rejectedsoftware/ddox#35.