Require Perl v5.8.1

This commit removes conditional UTF8 behavior and converts
fully-qualified global variables to 'our' variables.

This paves the way for future commits to be stricter about
encoding behavior.
Improve read() for strict, safe behavior

Files are read unbuffered, raw, and with strict UTF-8 decoding.
A shared lock is used (on platforms that support it).
Improve write() for safe, strict behavior

The write() method now locks (if supported) and truncates only after the
lock is acquired.

Data is written untranslated with strict UTF-8 encoding.

Also removes write_utf8_string as this is no longer needed for write().
Stricter encoding handling

The 'read' method now dies if invalid Unicode characters are detected.

The 'read_string' method now expects characters and no longer tries to
guess how to decode data. Internally-inconsistent strings are now an
error.

Various related tests have been amended to match and new tests for
correct error handling have been added.
Consistent exception handling

YAML::Tiny errors now all return undef and set the $YAML::Tiny::errstr.

YAML.pm compatibility functions (Dump, DumpFile, Load, LoadFile) all
croak on error.
Lazy load Config and Fcntl

Loads them only if attempting to read or write from a file.
update documentation for work in progress on 2.000 release
add support for readng quoted keys
escape hash keys if necessary

Fixes #7 but really could use some tests
Merge branch 'prepare-for-2.00'
Add data driven test basics
Implement TestMLTiny

Everything is now in it's right place:

Files are:
  - t/lib/TestMLTiny.pm
  - t/testml/basic.data.tml
  - t/25_testml.t

* testml test files go under t/testml
  * Files live canonically in ingydotnet/yaml-spec-tml
  * Copied by hand whenever. No submodules.
* t/lib/TestMLTiny exports handy functions for getting testml data
* TestMLTiny has no YAML::Tiny test code in it.
  * Could possibly become a real TestML::Tiny
* The code in *testml.t files does all the tests in your own Perl
  * But gets all the data flow from TestMLTiny.
  * You can take ful control in .t or rely on TestMLTiny part you like
  * No bridge file was needed.
* Subtests work as expected.
Replace t/02basic.t with testml!

Produce the exact same results as the old test, but using testml.

Also wrote code to do subtests, but left it commented out for now.

Fixed the testml parser to deal with \ escaping and trailing point newlines
more correctly.
Fix a small bug in t/02_basic.tml and TestMLTiny
convert t/03_regression.t to testml.

Refactored testml runner code in t/lib/Test.pm so can be reused.
It is the same logic for all these tests.

03_regression has non testml tests too. May want to refactor again later.
Convert t/11_meta_yml.t to testml
convert t/12_plagger.t to testml
convert 16_nullrefs and 18_tap to testml
finish migration to testml
Make this a testml test, but SKIP it.